Web.config HttpHandler pain - PullRequest
       12

Web.config HttpHandler pain

0 голосов
/ 04 июня 2010

У меня есть сайт .net 3.5 У меня есть два типа страниц: те, которые создают изображения, и те, которые отображают HTML через собственную инфраструктуру.

У меня есть обработчик, который имеет дело с этой внутренней структурой. Он работает и делает кучу журналирования, он называется SMS.OutputReporting.Handler

эти две страницы изображений являются обычными aspx-страницами с наследованием .Net System.Web.UI.Page.

В настоящее время это работает

<httpHandlers>
    <remove verb="*" path="*.asmx"/>
  <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  <add verb="GET, POST" path="NormalPage1.aspx" type="SMS.OutputReporting.Handler, SMS.OutputReporting"/>
  <add verb="GET, POST" path="NormalPage2.aspx" type="SMS.OutputReporting.Handler, SMS.OutputReporting"/>
    <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>

Это указывает на внутренний обработчик для NormalPage1 и NormalPage2 и продолжает свой путь для 2 страниц изображения. image1.aspx и image2.aspx Поэтому по умолчанию страницы-обработчики и исключения NormalPage1 и NormalPage2 обрабатываются в обработчике.

Я хочу, чтобы наоборот (поскольку будет больше NormalPages), я хочу, чтобы по умолчанию использовался пользовательский обработчик, а два исключения страниц с изображениями - стандартному обработчику. Как мне это сделать? Как мне объявить нормальный обработчик .Net?

Я не вижу нигде определения нормальных страниц .aspx для обработчика .Net.

Надеюсь, что имеет смысл

1 Ответ

0 голосов
/ 04 июня 2010

Вы пытались дать своим страницам, использующим ваш обработчик, собственное расширение? Что-то вроде

<add verb="*" path="*.smsx" type="SMS.OutputReporting.Handler,..." />

Тогда просто используйте это расширение для всех ваших страниц и aspx для ваших стандартных. Имеет смысл, что если у ваших страниц есть собственный обработчик, то в некотором смысле они действительно не являются ASPX-страницами.

Просто мысль, я никогда не пробовал эту идею сам.

...