Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IIS 7.5上的Web API 2 URL路由403/404错误_C#_Asp.net_Asp.net Web Api_Iis 7.5_Url Routing - Fatal编程技术网

C# IIS 7.5上的Web API 2 URL路由403/404错误

C# IIS 7.5上的Web API 2 URL路由403/404错误,c#,asp.net,asp.net-web-api,iis-7.5,url-routing,C#,Asp.net,Asp.net Web Api,Iis 7.5,Url Routing,我正在使用ASP.NET4.5和WebAPI2属性路由实现一个RESTfulWeb服务主机。我也包括在内。当我在IIS Express上通过Visual Studio 2012在本地运行它时,它工作得非常好,看起来非常酷;它显示默认的/home/index页面,其中包含一个API菜单,该菜单显示了所有restfulapi函数的文档。我还使用SOAPUI测试了所有API方法,并在本地运行,所有方法都运行良好 但当部署到Windows2008ServerR2上的IIS7.5时,URL路由绝对不起作用

我正在使用ASP.NET4.5和WebAPI2属性路由实现一个RESTfulWeb服务主机。我也包括在内。当我在IIS Express上通过Visual Studio 2012在本地运行它时,它工作得非常好,看起来非常酷;它显示默认的/home/index页面,其中包含一个API菜单,该菜单显示了所有restfulapi函数的文档。我还使用SOAPUI测试了所有API方法,并在本地运行,所有方法都运行良好

但当部署到Windows2008ServerR2上的IIS7.5时,URL路由绝对不起作用

当我浏览网站时,我得到:

403-禁止:访问被拒绝

如果我尝试/home/index或web api方法的任何路由,我会得到:

404-找不到文件或目录

我已在服务器上安装了.Net 4.5,然后转到Windows\Microsoft.Net\Framework64并运行:

Aspnet_regiis-i

iisreset

我将应用程序部署到IIS,并将应用程序池设置为使用.Net Framework v4.0.30319和托管管道模式:集成

我的web.config中有以下设置:

    <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
    <authentication mode="None" />
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true" />
    <handlers>
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
    </system.webServer>
因此,如果URL路由正常工作,那么默认情况下它应该显示主/索引视图


我还尝试向站点添加Index.html文件,效果也不错。因此,该网站作为一个网站运行良好,但URL路由拒绝工作

尝试将此属性添加到web.config中的标记中

runAllManagedModulesForAllRequests="true"

尝试将此属性添加到web.config中的标记

runAllManagedModulesForAllRequests="true"

你有没有让它工作过?我有类似的代码和问题。它是如何解决的?同样的问题你有没有工作过?我有类似的代码和问题。它是如何解决的?这里有同样的问题
    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
runAllManagedModulesForAllRequests="true"