所以我发现自己遇到了一个难题。我们的应用程序中有一些旧的 asmx Web 服务,多年来一直运行良好。
突然间,他们停止了构建服务器(CI)上的工作。我说停止工作,因为即使当我导航到服务时显示服务描述,调用任何操作也不会路由到服务(Web 表单路由)。在我尝试解决此问题时出现了 2 个奇怪的问题。
1.)搁置所有待处理的更改后,从 TFS 获取最新版本并进行本地构建(除非我弄错了,否则将获得构建服务器上的内容,因为我们使用每个构建/推送 checkin )。我注意到我无法在本地复制该错误。
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>
关于.net - ASMX 操作 404s,但 ASMX 服务描述没有,url 路由问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5438693/