所以我发现自己有一个难题.我们的应用程序中有一些旧的asmx Web服务,这些服务已经运行了很长时间. 突然间,他们停止了构建服务器(CI)的工作.我说停止工作,因为即使我导航到服务时显示
突然间,他们停止了构建服务器(CI)的工作.我说停止工作,因为即使我导航到服务时显示服务描述,调用任何操作也不会路由到服务(Web窗体路由).我试图解决这个问题时出现了两个奇怪的问题.
1.)搁置所有挂起的更改,从TFS中获取最新信息,然后进行本地构建(除非我弄错了,否则我会在构建服务器上找到自我们每次签入后构建/推送的内容).我注意到我无法在本地复制错误.
2.)即使我不能在本地复制错误,我仍然怀疑路由,但是我们所有服务的路由首先被添加到表中,看起来像这样:“{service} .asmx / {* pathInfo}” ,我想这是作为安全预防措施添加的,因为像MyService.svc这样的东西甚至不应该到路由器,因为文件实际存在,但我不确定该规则是否适用于MyService.svc / MyMethod
我不确定如何测试路由,即在哪里设置断点以了解我是否正在通过路由表查找特定请求,因此该区域中的任何指针都将受到赞赏,以及任何关于为什么会发生这种情况的其他想法.
谢谢!
在遇到这个SO条目后,我刚刚遇到了同样的错误:Handlers returns 404 error on IIS7.5 integrated pipeline
并尝试将asmx处理程序添加到web.configs webServer部分的解决方案一切都很好:
<system.webServer> <validation validateIntegratedModeConfiguration="false"/> <modules runAllManagedModulesForAllRequests="true"/> <handlers> <add verb="*" path="*.asmx" name="asmx" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> </handlers> </system.webServer>