2010-10-18 110 views
2

我們在IIS站點中的應用程序下的虛擬目錄的物理子目錄中有一個web.config。事情是這樣的:忽略子目錄中的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與此消息:

請求格式無法識別的URL意外以'/ blah'結尾。

堆棧跟蹤爲:

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) 
+0

我編輯了這個問題,在服務啓動失敗之後爲HTTP POST請求包含異常消息和堆棧跟蹤 – 2010-10-18 16:48:33

+0

另外,忘記提及我實際使用.Net Reflector查看.Net代碼並發現特定的異常當它認爲HTTP POST不被允許時拋出。 – 2010-10-18 16:50:23

+0

你好,我有完全相同的問題....你有解決方案嗎?謝謝! – 2011-01-18 20:44:58

回答

0

這是不可能的GET和POST真正被忽略的間歇。

你的ASMX在做什麼?如果您正在分配資源而沒有釋放資源(例如與另一個服務或WCF對象的連接),或者輸入長時間運行的任務,那麼當這些資源耗盡時,IIS可以停止響應請求。這將解釋重新啓動IIS修復了這個問題。

你沒有得到任何答覆,錯誤500,或什麼?事件日誌中的任何內容?

+0

該服務速度快,並沒有任何資源。 – 2010-10-18 16:49:32