我在ASP.NET 4.0中有一个Web应用程序。我添加了一个asmx服务,主要作为自动完成扩展器的查找值的源。
当我在本地机器上调试时,一切都正常。但是,当我将Web应用程序部署到IIS 7.5时,当尝试向服务发送数据时,我收到HTTP 404响应。
我可以浏览到服务定义,看可用的操作。但是,当我使用测试页面使用POST测试服务时,我再次收到一个HTTP 404。
我不知道发生了什么。我在我的Web应用程序中创建了asmx文件,并且部署在我的另外工作的生产应用程序的虚拟目录中。
也可能是.asmx文件被部署在同一个虚拟目录中的问题?
解决方法
我遇到了同样的错误,绊倒了这个SO条目:
Handlers returns 404 error on IIS7.5 integrated pipeline和
ASMX operation 404s,but ASMX service description doesn’t,url routing issue?
并尝试将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>