2

我们在 IIS 站点中的应用程序下的虚拟目录的物理子目录中有一个 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 回答