WebApi应用程序:错误404.0,处理程序静态文件

问题描述:

我只是尝试在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://*.com/questions/9703090/http-404-page-not-found-in-web-api-hosted-in-iis-7-5 – Avner 2014-10-02 11:58:50

微软肯定会在安装程序中的“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

我有一个类似的问题,这个使用Owin。清理临时ASP.NET文件修复了它。希望这可以帮助某人。