【问题标题】:Web.config in a subdirectory ignored子目录中的 Web.config 被忽略
【发布时间】:2011-04-27 00:42:42
【问题描述】:

我们在 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 并带有此消息:

请求格式无法识别,因为 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)

【问题讨论】:

  • 我编辑了问题,在服务开始失败后包含 HTTP POST 请求的异常消息和堆栈跟踪
  • 另外,忘了说我其实是用.Net Reflector查看.Net代码,发现当它认为HTTP POST不被允许的时候会抛出特定的异常。
  • 您好,我遇到了完全相同的问题....您找到解决方案了吗?谢谢!
  • 不,还没有。它可能需要调试到 .Net 程序集,而我没有 Reflector 许可证。如果你这样做了,最新版本允许你这样做,所以请随意尝试。
  • 我来自 ASP.NET 开发团队,如果你仍然有一个 repro 活跃并且你想花一些时间和我一起缩小问题,这对我们真的很有帮助以便有效解决问题。请通过 [dragod (at) microsoft d.o.t com] 直接与我联系,谢谢!

标签: asp.net web-config subdirectory


【解决方案1】:

get 和 post 不太可能真正被间歇性忽略。

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

您是没有收到任何响应、错误 500 还是什么?事件日志中有任何内容吗?

【讨论】:

  • 服务速度快,不占用任何资源。
猜你喜欢
  • 1970-01-01
  • 2013-12-29
  • 2010-09-22
  • 1970-01-01
  • 2014-12-02
  • 1970-01-01
  • 2020-04-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多