在IIS8上运行ServiceStack时出现404 Not Found错误

时间:2013-05-13 19:46:07

标签: servicestack iis-8 servicestack-bsd

我的ServiceStack Web服务在IIS Express(VS 2012)和部署到Windows Azure时运行良好,但在Window 8上的IIS 8下无效。

我得到了404 Not Found Error。我的web.config具有为IIS Express和Web服务器定义的两个部分。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <system.web>
    <compilation debug="true" targetFramework="4.5">
      <assemblies>
        <add assembly="System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </assemblies>
      <buildProviders>
        <add extension=".cshtml" type="ServiceStack.Razor.CSharpRazorBuildProvider, ServiceStack.Razor" />
      </buildProviders>
    </compilation>
    <httpRuntime targetFramework="4.5" />
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
      <add path="*" name="ServiceStack.Factory" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" />
    </handlers>
  </system.webServer>
</configuration>

解决方案:

通过进一步研究得出结论,这解决了我的问题:

  1. 我将应用程序池切换到集成模式
  2. 我将以下内容添加到web.config

    <system.webServer>
      <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer>
    

1 个答案:

答案 0 :(得分:2)

重复解决方案作为答案,明确问题所在:


通过做一些搜索,我找到了2个解决我问题的建议:

  1. 将应用程序池切换到集成模式
  2. 将以下内容添加到web.config

     <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>