我们在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”结尾的网址,无法识别请求格式。
堆栈跟踪是:
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 :(得分:0)
并不是间歇性地忽略了get和post。
您的ASMX在做什么?如果您正在分配而不是释放资源(例如与另一个服务或WCF对象的连接)或输入长时间运行的任务,则IIS可以在这些资源耗尽时停止响应请求。这可以解释重启IIS修复问题。
你没有得到任何回应,错误500,或者什么?事件日志中的任何内容?