• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Global.asaxが無視される)

Global.asaxが無視される

このQ&Aのポイント
  • ASP.NETでWEBアプリを作っています。言語はVBです。
  • クエリ文字列つきアドレスを固定アドレスに見せかけるロジックを使いたいと思い、Global.asaxにそのコードを書きました。
  • web developer 2008でデバッグした際には動作するが、本番用のWEBサーバーに置いてアクセスすると404エラーになる問題が発生しています。Global.asaxのソースを提供します。

質問者が選んだベストアンサー

  • ベストアンサー
  • sato18
  • ベストアンサー率100% (4/4)
回答No.1

察するに、 ttp://aaa/details/1-2-3-4-5 という見せかけのアドレスが静的アドレスと見なされ、Global.asaxのルールを適用されていないものと思われます。 ですので、静的アドレスでも.aspxファイルと同様に扱われるための設定が必要です。 (1)IISマネージャーを開き、該当のアプリケーションを右クリック→詳細設定 「アプリケーションプール」を「マネージパイプラインモード」が「クラシック」のものに変える ※通常、「Classic .NET AppPool」という名前になっていると思います (2)同じくIISマネージャーで「ハンドラーマッピング」を開く 右の操作から「ワイルドカードスクリプトマップの追加」を選択 実行可能ファイルには、.aspxを実行するためのdllファイルを指定 ※私の環境では「%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll」 名前は自由につけてよい (3)(2)で追加したワイルドカードスクリプトマップを、優先順位で「StaticFile」のすぐ上に置く 右の操作で「順序指定された一覧の表示」をクリック すると先ほどのワイルドカードスクリプトマップが一番上に来るので、「下へ移動」を何度か押して「StaticFile」のすぐ上に来るようにする 参考 http://technet.microsoft.com/ja-jp/library/ff454109.aspx 上記の操作で、ttp://aaa/details/1-2-3-4-5 というアドレスもaspx扱いされ、 Global.asaxのルールが適用されると思います。 ただし、環境によってはさらに別の設定が必要かもしれません。

souitirou1
質問者

お礼

具体的なアドバイスありがとうございます! これだけでは404エラーのままだったのですが、IISでもう1つ設定を変えると動くようになりました。 以下にその方法を書きます。 1.IISマネージャーを開く 2.「アプリケーションプール」を選択 3.「マネージパイプラインモード」が「クラシック」のプールの詳細設定を開く 4.「32ビットアプリケーションの有効化」という項目をFalseからTrueにする WEBサーバにしているWindowsが64ビットですと、さらに上記の設定が必要なようです。 32ビットであればsato18様に教えていただいた設定だけで十分でした。 大変助かりました。

関連するQ&A