在IIS上托管的Owin并没有使用Dot"。"来捕获URL。

时间:2014-06-20 13:58:50

标签: asp.net asp.net-web-api owin

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

localhost:4070 / cdn / aa作品

但是

localhost:4070 / cdn / a.a无法正常工作

我还在

中做了以下更改
<system.webServer>
  <modules runAllManagedModulesForAllRequests="true">    
  </modules>

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

更新

我用owin主机试过这个行为是类似的行为,用&#34;。&#34;没有路由到webapi。

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

1 个答案:

答案 0 :(得分:8)

此配置对我有用:

<system.webServer>
  <handlers>
    <add name="OWIN" path="*" verb="*" type="Microsoft.Owin.Host.SystemWeb.OwinHttpHandler" />
  </handlers>
</system.webServer>

从&#34; public /&#34;获取文件路径。文件夹并将其作为回应我最终得到了这个:

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