WebApi应用程序:错误404.0,处理程序StaticFile

时间:2014-09-30 11:29:04

标签: c# asp.net .net iis asp.net-web-api

我刚刚尝试在带有IIS 7.0的Windows 2008R2上部署WebApi应用程序,直到现在IIS操作系统都未触及。

应用程序在我们的开发服务器上运行(相同的Win和IIS版本),没有麻烦。在部署服务器上,

  • 已安装.NET Framework 4.5,
  • 已安装ASP.NET功能
  • 已安装Windows身份验证

当我调用应映射到ASP.NET的URL时,错误是

      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

Handler StaticFile 似乎很重要 - 据我所知,原因是ASP.NET无法正确处理URL。我在哪里可以开始搜索此问题的实际根源?

我应该补充说,在Windows 2012环境中,所有其他部署都是成功的。

4 个答案:

答案 0 :(得分:1)

微软绝对应该在" ASP.NET"安装程序中的功能。

在Windows 2008上安装ASP.NET功能时,这将启用ASP.NET 3.5,而我需要ASP.NET 4。

因此,在安装了.NET Framework v4之后,我会继续使用IIS注册ASP.NET 4:

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/

答案 1 :(得分:0)

我使用Owin遇到了类似的问题。清除临时ASP.NET文件修复它。希望这有助于某人。

答案 2 :(得分:0)

如果您尝试拨打无扩展名网址,可以使用官方修补程序:roKeyboardScreen

答案 3 :(得分:0)

在IIS 10(Windows Server 2016)上的ASP.Net 4.6.2中也具有相同的行为,但在IIS 8.5(Windows Server 2012 R2)上可以使用。结果是http 404.0,处理程序:StaticFile。我通过将ExtensionlessUrl处理程序添加到web.config来解决了这个问题:

idx = find([stats.Type] == 1:10); % Does not work


% must use this
temp = [];
for aa = 1:10
    idx = find([stats.Type] == aa);
    temp = horzcat(idx,temp);
end
[stats(temp).Stime]

<handlers> <remove name="ExtensionlessUrl-Integrated-4.0" /> <add name="ExtensionlessUrl-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> </handlers> 似乎很重要! name有效,但是name="ExtensionlessUrl-Integrated-4.0"无效。