忽略了子目录中的Web.config

时间:2010-10-18 15:55:13

标签: asp.net web-config subdirectory

我们在IIS站点中的应用程序下的虚拟目录的物理子目录中有一个web.config。像这样:

  • 网站
    • 应用
      • 的Web.config
      • 虚拟目录
        • SUBDIR
          • 的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”结尾的网址,无法识别请求格式。

堆栈跟踪是:

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)

1 个答案:

答案 0 :(得分:0)

并不是间歇性地忽略了get和post。

您的ASMX在做什么?如果您正在分配而不是释放资源(例如与另一个服务或WCF对象的连接)或输入长时间运行的任务,则IIS可以在这些资源耗尽时停止响应请求。这可以解释重启IIS修复问题。

你没有得到任何回应,错误500,或者什么?事件日志中的任何内容?