2

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)
4

1 に答える 1

0

get と post が実際に断続的に無視されることはほとんどありません。

ASMX は何をしていますか? リソース (別のサービスや WCF オブジェクトへの接続など) を割り当てて解放しない場合、または実行時間の長いタスクに入る場合、IIS はそれらのリソースが使い果たされたときに要求への応答を停止する可能性があります。これは、IIS を再起動すると問題が解決することを説明しています。

まったく応答がありませんか、エラー 500 ですか、それとも何ですか? イベントログに何か?

于 2010-10-18T16:00:53.420 に答える