IIS サイトのアプリケーションの下にある仮想ディレクトリの物理サブディレクトリに web.config があります。このようなもの:
- サイト
- アプリ
- Web.config
- 仮想ディレクトリ
- サブディレクトリ
- Web.config
- サブディレクトリ
- アプリ
Web.config では、この構成を system.web に配置します。
<webServices>
<protocols>
<add name="HttpPost" />
<add name="HttpGet" />
</protocols>
</webServices>
そのサブディレクトリで ASMX の両方のプロトコルを有効にします。
しばらくの間はすべて正常に機能し、その後停止し、それらのプロトコルが機能しなくなります。IIS を再起動すると、再び機能し始めます。
これを修正するために、回避策を使用してその構成をアプリケーション Web.config に追加すると、問題なく動作します。ただし、アプリケーションの Web.config を変更することは避け、代わりにサブディレクトリ Web.config を機能させたいと考えています。
しばらくすると、ASP.Net がサブディレクトリ Web.config の考慮を停止する理由はありますか?
Windows Server 2003、IIS 6、ASP.Net 2.0 でホストしています。
ASMX への HTTP POST 要求が機能しなくなります。取得しているエラーは、次のメッセージを含む System.InvalidOperationException です。
予期せず「/blah」で終わる URL の要求形式が認識されません。
スタック トレースは次のとおりです。
at System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response)
at System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath)
at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)
at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)