【发布时间】:2015-07-09 00:47:11
【问题描述】:
如何将 URL Rewrite 模块与 OWIN 中间件一起使用?
阅读http://www.asp.net/aspnet/overview/owin-and-katana/owin-middleware-in-the-iis-integrated-pipeline 后,它说我应该能够使用 NuGet 包在 IIS 管道中使用 OWIN 中间件:
Microsoft.Owin.Host.SystemWeb
这是我尝试使用的代码:
Web.config:
<system.webServer>
<rewrite>
<rules>
<rule name="pandainserter" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*test.*" />
<conditions trackAllCaptures="true">
<add input="{REQUEST_URI}" pattern="/(.*?)/(.*)" />
</conditions>
<action type="Rewrite" url="http://{HTTP_HOST}:20000/v1/{C:2}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
Startup.cs (OWIN):
[assembly: OwinStartup(typeof(ApiUrlRewriter.Startup))]
namespace ApiUrlRewriter
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.Run(context =>
{
string t = DateTime.Now.Millisecond.ToString();
return context.Response.WriteAsync(t + " Production OWIN App");
});
}
}
}
我想要做的是使用 OWIN 中间件,允许 CORS 并修复 OPTIONS 预检 http 调用(此处描述:How to make CORS Authentication in WebAPI 2?),同时仍然能够使用 IIS 重写模块,重写我的调用同一服务器上的其他网站。
我收到这个错误,所有的电话。将 OWIN 与 IIS 重写模块一起使用时:
HTTP 错误 404.4 - 未找到 您要查找的资源没有与之关联的处理程序。
详细错误信息:
模块 IIS Web 核心
通知 MapRequestHandler
处理程序 ExtensionlessUrl-Integrated-4.0
错误代码0x8007007b
似乎重写模块没有注册,我不确定我做错了什么,或者我是否使用了正确的方法?
【问题讨论】:
标签: asp.net iis cors owin url-rewrite-module