我有.net Web应用程序,其中包含对OWIN的引用。
一切正常,并且正在愉快地使用OWIN为Web应用程序提供服务。
我想在同一个Web应用程序中包含一个aspx网页。有没有一种方法可以通知我的Web应用程序不要在单个页面(或路径)上使用OWIN。
答案 0 :(得分:0)
从调查看来,这可能是不可能的。
正在处理几个处理程序映射。
System.Web.UI.PageHandlerFactory处理aspx页面 Microsoft.Owin.Host.SystemWeb.OwinHttpHandler处理owin请求
我可以分别添加它们并接近我的要求
即:
<system.webServer>
<handlers>
<clear />
<add name="OWIN" path="test" verb="*" type="Microsoft.Owin.Host.SystemWeb.OwinHttpHandler" />
</handlers>
</system.webServer>
这将允许从目标路径中放出东西(在mycase中进行测试)
和
<system.webServer>
<handlers>
<clear />
<add name="APSX" path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory"/>
</handlers>
</system.webServer>
仅当OWIN dll不在bin目录中时,才允许我提供aspx页面。
如果存在OWIN dll,则PageHandlerFactory将放入OWIN处理程序中并通过OWIN生成服务。即即使未指定OwinHttpHander,它仍可插入OWIN。我猜这是内置在PageHandlerFactory代码中的。
据我所知,这意味着您永远不能在使用Katana的同一Web应用程序中拥有一个aspx页面(因为它需要OWIN dll,然后PageHandlerFactory调用到OWIN中)代码而不是aspx-是从测试中推导出来的,而不是被证明是正确的。)