我有自定义owin middlware设置非常简单,并且在我更改web.config中的处理程序之前按预期工作并添加了这个:
<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" />
</handlers>
我希望能够使用我的API处理所有类型的请求,似乎以这种方式更新处理程序是唯一的方法,但是一旦我将其添加到配置文件中,我的自定义owin middlware就开始了每个请求点击两次:
public class RequestMiddleware : OwinMiddleware
{
public RequestMiddleware(OwinMiddleware next) : base(next)
{
}
public async override Task Invoke(IOwinContext context)
{
string name = context.Request.Headers["Repository"];
if (string.IsNullOrEmpty(name))
{
await Next.Invoke(context);
return;
}
Console.WriteLine("Custom Owin Middlware Reqeusted");
await Next.Invoke(context);
}
}
为什么这个中间件突然开始被击中两次?我看了每次被击中的请求,一切看起来都一样。起初我以为可能是一个OPTIONS请求,但它们都是GET请求。这并不是使用CORS请求的,但它是我脑海中唯一突出的东西。