2014-09-30 143 views
8

我只是嘗試在Windows 2008R2上使用IIS 7.0部署WebApi應用程序,直到現在,IIS管理器始終保持不變。WebApi應用程序:錯誤404.0,處理程序靜態文件

該應用程序運行在我們的開發服務器(相同的Win和IIS版本)沒有麻煩。在部署服務器,

  • 的.NET Framework 4.5安裝,安裝
  • ASP.NET功能和
  • Windows身份驗證安裝

當我打電話應該映射到一個URL ASP.NET中,錯誤的是

 HTTP Error 404.0 

     Module IIS Web Code 
Notification MapRequestHandler 
     Handler StaticFile 
    Error code 0x80070002 
Requested URL http://localhost:80/myapp/api/GetUserConfig 
Physical Path C:\inetpub\wwwroot\myapp\api\GetUserConfig 
Logon Method Negotiate 
    Logon User ADDOMAIN\Administrator 

處理器StaticFile似乎很重要 - 據我所知,原因是ASP.NET沒有正確處理該URL。我在哪裏可以開始尋找這個問題的實際根源?

我應該補充說,所有在Windows 2012環境中的多個其他部署都是成功的。

+0

你看着配置文件?一切看起來都是爲了什麼? – 2014-09-30 17:46:34

+0

您是否啓用了iis的靜態內容功能?看到這個博客如何:http://brendan.enrick.com/post/IIS-7-Not-Serving-Static-Files – Avner 2014-10-02 04:42:09

+0

我不好,我誤解你的問題。聽起來像一個可能的重複https://stackoverflow.com/questions/9703090/http-404-page-not-found-in-web-api-hosted-in-iis-7-5 – Avner 2014-10-02 11:58:50

回答

1

微軟肯定會在安裝程序中的「ASP.NET」功能中加入一個版本。

當您在Windows 2008上安裝ASP.NET功能,這使ASP.NET 3.5,而我需要ASP.NET 4

因此,有安裝了.NET Framework 4版後,我將勇往直前,註冊ASP .NET 4 IIS:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319> .\aspnet_regiis.exe -i 

來源:

https://alexanderzeitler.com/articles/HTTP-Error-4040---Not-Found-(MapRequestHandler--StaticFile)-when-deploying-WCF-Web-API-on-IIS-7x/

+0

只是一個通知:鏈接在你的答案已經死了 – 2015-11-06 02:49:58

+0

@HoàngLong謝謝,我相應地更新了答案。 – Alexander 2015-11-06 19:12:34

+0

我遇到了同樣的問題; IIS正在處理請求,就好像它是一個靜態文件請求,即使它明確映射到控制器操作。但我有另一個web api應用程序在同一臺服務器上正常工作,使用相同的應用程序池,相同版本的.net等等,所以我不認爲我錯過了任何服務器端軟件。 Global.asax和Web.config和WebApiConfig.cs文件完全相同。我要映射的控制器操作不需要任何參數。我只是沒有得到可能造成這種情況的事情。 – Shavais 2016-05-20 18:41:57

0

我有一個類似的問題,這個使用Owin。清理臨時ASP.NET文件修復了它。希望這可以幫助某人。

相關問題