在IIS上托管的Owin不会捕获带有"Dot"的URL.

Ova*_*ais 7 asp.net asp.net-web-api owin

我有一个owin项目,我使用Microsoft.Owin.Host.SystemWeb托管它.它工作正常,但如果我在网址中有一个Dot它失败了,我得到了404.例如

localhost:4070/cdn/aa有效

localhost:4070/cdn/aa不起作用

我也做了以下改动

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true">    
  </modules>
Run Code Online (Sandbox Code Playgroud)

我确信这个设置解决了普通的asp.net web api中的问题,但我和Owin有这个问题.

更新

我用owin主机试过这个类似的行为,用"."调用.没有路由到webapi.

我可以理解当url的最后一部分中有一个点时,框架认为它是一个文件并尝试处理它的行为,但我的问题是我想在我的正常管道中处理这些url.我实际上正在为Microsoft cdn编写代理,并且这些文件是在运行时使用另一台服务器生成的.

Ale*_*tau 8

这个配置对我有用:

<system.webServer>
  <handlers>
    <add name="OWIN" path="*" verb="*" type="Microsoft.Owin.Host.SystemWeb.OwinHttpHandler" />
  </handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

为了从"public /"文件夹获取文件路径并将其作为响应,我最终得到了这个:

string filePath = System.Web.Hosting.HostingEnvironment.MapPath("~/public" + context.Request.Path);
Run Code Online (Sandbox Code Playgroud)