Вопрос

Я пытаюсь заставить пользовательского обработчика работать на конкретный URL (или набор URL) в ASP.NET 3.5.

Обработчик на самом деле еще не делает ничего значительного - он просто регистрирует запрос. Я могу опубликовать код, если кто -нибудь, это актуально, но я действительно не думаю, что его вообще вызывают. (В частности, для обычных исключений я получаю пользовательскую страницу ошибок и журнал ... здесь я просто получаю Vanilla IIS 404.)

Вот актуальная часть web.config файл:

<system.web>
  <httpHandlers>
    <add verb="GET,POST" path="*.robot" validate="false" 
         type="CSharpInDepth.Wave.RobotHandler, CSharpInDepth"/>
  </httpHandlers>
</system.web>

(Очевидно, есть и другие вещи в этом разделе, но я не считать это актуально.)

Локально, работая под сервером Dev, он работает нормально. В моей настоящей коробке я всегда получаю 404. Все под каталогом веб -сайта одинаково (воспроизводится через SVN). Это включает в себя bin каталог, содержащий CSharpInDepth.dll, который, как я подтвердил, содержит CSharpInDepth.Wave.RobotHandler.

Я пытаюсь получить http://csharpindepth.com/foo.robot И просто получите 404.

Я пробовал с именем сборки, конкретными URL -адресами или с подстановками ... ничего не работает.

Я уверен, что только что пропустил какой -нибудь простой флаг где -то в конфигурации IIS, но я дул, если смогу его найти ...

РЕДАКТИРОВАТЬ: Это версия IIS 6. Попытка добавить *.ROBOT к фильтру ISAPI сейчас ...

Это было полезно?

Решение

Ну, если ящик для хостинга находится в IIS7 в интегрированном конвейере, вам нужно добавить его в другой бит конфигурации:

<system.webmodules>
  ....
  <modules>
    <add name="RobotHandler" type="CSharpInDepth.Wave.RobotHandler, CSharpInDepth"/>
  </modules>
  ....
</system.webmodules>

Если это IIS6, вам нужно будет сопоставить *.Robots в ASP.NET ISAPI DLL.

(Для некоки вы делаете это следующим образом)

  1. Откройте IIS Admin.
  2. Щелкните правой кнопкой мыши на веб -сайте, который вы хотите настроить, и выберите «Свойства» с контекстным меню. Это отобразит диалоговое окно «Свойства веб -сайта».
  3. Выберите вкладку Home Directory и нажмите кнопку «Конфигурация». Это отобразит диалоговое окно конфигурации приложения.
  4. Нажмите «Добавить».
  5. Выберите ASPNET_ISAPI.DLL из каталога .NET Framework, расширения, которое вы хотите сопоставить, и все глаголы, либо только те, которые вы хотите отобразить.
  6. Нажмите ОК.

Другие советы

Джон,

Вам придется настроить сопоставления сценариев IIS для прохождения *.Robot to aspnet_isapi.dll.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top