在IIS 10上的OWIN WebApi项目在所有操作上提供了404个
问题描述:
我有一个在OwinSelfHost中工作的OWIN WebAPI项目,但在IIS 10上托管时总是会产生404,唯一可行的是初始页面public/index。 HTML。我在Windows 10机器上运行IIS 10。我正在使用Dapper,Npgsql和Postgresql数据库。在IIS 10上的OWIN WebApi项目在所有操作上提供了404个
我已经试过,我通过google搜索阅读,到目前为止,没有运气了一些技巧,这里是我的web.config:
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.6" />
<httpRuntime targetFramework="4.6" />
<httpModules>
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
</httpModules>
</system.web>
<system.webServer>
<!-- runAllManagedModulesForAllRequests: Make sure that we have OWIN handle static files, too. -->
<modules runAllManagedModulesForAllRequests="true">
<remove name="ApplicationInsightsWebTracking" />
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
</modules>
<staticContent>
<!--clear /-->
</staticContent>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<validation validateIntegratedModeConfiguration="false" />
<directoryBrowse enabled="true" />
<defaultDocument>
<files>
<add value="public/index.html" />
</files>
</defaultDocument>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
而且packages.config:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Dapper" version="1.50.1" targetFramework="net46" />
<package id="Dapper.Contrib" version="1.50.0" targetFramework="net46" />
<package id="Dapper-Async" version="1.03" targetFramework="net46" />
<package id="Microsoft.ApplicationInsights" version="2.0.0" targetFramework="net46" />
<package id="Microsoft.ApplicationInsights.Agent.Intercept" version="1.2.1" targetFramework="net46" />
<package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.0.0" targetFramework="net46" />
<package id="Microsoft.ApplicationInsights.JavaScript" version="0.22.9-build00167" targetFramework="net46" />
<package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.0.0" targetFramework="net46" />
<package id="Microsoft.ApplicationInsights.Web" version="2.0.0" targetFramework="net46" />
<package id="Microsoft.ApplicationInsights.WindowsServer" version="2.0.0" targetFramework="net46" />
<package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.0.0" targetFramework="net46" />
<package id="Microsoft.AspNet.Cors" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.WebApi.Cors" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.WebApi.Owin" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.WebApi.OwinSelfHost" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.Azure.AppService.ApiApps.Service" version="0.9.16" targetFramework="net46" />
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net46" />
<package id="Microsoft.Owin.FileSystems" version="3.0.1" targetFramework="net46" />
<package id="Microsoft.Owin.Host.HttpListener" version="3.0.1" targetFramework="net46" />
<package id="Microsoft.Owin.Hosting" version="3.0.1" targetFramework="net46" />
<package id="Microsoft.Owin.StaticFiles" version="3.0.1" targetFramework="net46" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net46" />
<package id="Npgsql" version="3.1.6" targetFramework="net46" />
<package id="Owin" version="1.0" targetFramework="net46" />
<package id="OwinHost" version="3.0.1" targetFramework="net46" />
<package id="Swashbuckle" version="5.0.0" targetFramework="net46" />
<package id="Swashbuckle.Core" version="5.0.0" targetFramework="net46" />
<package id="System.IdentityModel.Tokens.Jwt" version="4.0.0" targetFramework="net46" />
<package id="WebActivatorEx" version="2.0.6" targetFramework="net46" />
</packages>
答
你有将OwinHttpHandler
添加到您的管线中:
<handlers>
<add name="Owin" verb="*" path="*" type="Microsoft.Owin.Host.SystemWeb.OwinHttpHandler, Microsoft.Owin.Host.SystemWeb" />
</handlers>
您注册了asp.net吗?如果没有,尝试'aspnet_regiis -i'使用visual studio命令行工具作为管理员 –
@Khan我刚刚尝试过,删除网站并再次添加站点,没有帮助。 – user1510580
这不是关于删除网站,这是关于注册您的asp.net与IIS –