![](/img/trans.png)
[英]404 Error when trying to access Web API 2 Service deployed to IIS 7.5
[英]ASMX service works on development server, returns 404 when deployed to IIS 7.5
我在ASP.NET 4.0中有一個Web應用程序。 我添加了一個asmx服務,主要是作為自動完成擴展器的查找值的源。
當我在本地機器上調試時,一切正常。 但是,當我將Web應用程序部署到IIS 7.5時,我在嘗試將數據發送到服務時收到HTTP 404響應。
我能夠瀏覽到服務定義,查看可用的操作。 然而,引人注目的是,當我使用測試頁面使用POST測試服務時,我再次收到HTTP 404。
我不確定發生了什么。 我確實在我的Web應用程序中創建了asmx文件,它部署在我正在運行的生產應用程序的虛擬目錄中。
是否存在將.asmx文件部署在同一虛擬目錄中的問題?
在遇到這個SO條目后,我剛剛遇到了同樣的錯誤:
ASMX操作404s,但是ASMX服務描述沒有,url路由問題?
並嘗試將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>
您應該檢查Web服務的應用程序池:
我使用jQuery發布到asmx並且它在測試系統中工作,但在生產服務器上失敗了。 我錯過了數據類型參數:
$.ajax({ type: "POST", contentType: "application/json; charset=utf-8", data: JSON.stringify({ //Data goes here }), dataType: "json", //<<<<<<<<< This is critical for the post to succeed in production. Without it we get a 404. url: "/yourPathHere/yourEndpoint.asmx/methodName", error: function (jqxhr, status) { //error handler }, success: function (data, status) { //succes handler } });
在Asp.net MVC RouteConfig.cs
你不能擁有這一行:
routes.RouteExistingFiles = true;
那是在給我帶來http 404錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.