Owinアプリケーションを特定のパスでのみ実行するようにしているASP .NET MVC 4プロジェクトがあるので、から始まるすべてのリクエストはowin-api/*これを実現するためにASP .NET MVC 4でOwinアプリケーションを実行する
System.Web.Handlers.TransferRequestHandlerMVCパイプラインによってOwinパイプラインMicrosoft.Owin.Host.SystemWeb.OwinHttpHandler及びその他の要求によって処理されます、私は次のようしている。
Web.config
<appSettings>
<add key="owin:appStartup" value="StartupServer.Startup"/>
</appSettings>
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="Owin" verb="*" path="owin-api/*" type="Microsoft.Owin.Host.SystemWeb.OwinHttpHandler, Microsoft.Owin.Host.SystemWeb" />
</handlers>
</system.webServer>
起動クラス:
namespace StartupServer
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.Run(context =>
{
return context.Response.WriteAsync("Owin API");
});
}
}
}
しかし "OwinのAPIは、" 今、リクエストごとにoutoputです。 OwinHttpHandlerを使用するようIISに指示するには、パスowin-api/*がWeb.configに指定されている場合にのみ使用しますか?
''の下にハンドラを追加しようとしましたか? –
haim770
@ haim770残念ながら、それは動作しません。問題はOwinが他のすべてのHTTPハンドラよりも優先されているようです –
ワイルドカードなしで 'path =" owin-api "'を試しましたか? – haim770