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编写代理,并且这些文件是在运行时使用另一台服务器生成的.
这个配置对我有用:
<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)
| 归档时间: |
|
| 查看次数: |
664 次 |
| 最近记录: |