Обслуживание страницы aspx в веб-приложении asp.net с использованием Microsoft.Owin.Host.SystemWeb (Katana) - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть веб-приложение .net, которое содержит ссылку на OWIN.

Это все работает нормально и успешно обслуживает веб-приложение, используя OWIN.

Я хочу включить в то же веб-приложение веб-страницу aspx. Есть ли способ сообщить моему веб-приложению, чтобы он не использовал OWIN для одной страницы (или пути).

1 Ответ

0 голосов
/ 10 ноября 2018

По результатам расследования кажется, что это невозможно.

Есть несколько отображений обработчиков, которые находятся в игре.

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>

Позволит мне открыть страницу aspx, но только если OWIN dll не находится в каталоге bin.

Если присутствуют библиотеки OWIN, то PageHandlerFactory перейдет в обработчик OWIN и будет обрабатываться через создание OWIN. То есть хотя OwinHttpHander не указан, он все равно запускается в OWIN. Я предполагаю, что это встроено в код PageHandlerFactory.

Насколько я могу сказать, это означает, что вы никогда не сможете иметь страницу aspx в том же веб-приложении, которое использует Katana (потому что для этого нужны DLL-файлы OWIN, а затем вызовы PageHandlerFactory в код OWIN а не aspx - выводится из тестирования, а не доказано правильно).

...