2013-11-02 3 views
0

У меня есть простой обработчик, написанный на C# с помощью IHttpHandler. Как я могу заставить его работать с IIS? Я следовал за учебником в http://mvolo.com/developing-iis7-modules-and-handlers-with-the-net-framework/#handler, но это не сработало для меня.Как развернуть код IHttpHandler для IIS

В IIS7 моих шагах:

  1. создать новую страницу под названием "SAMPLE"

  2. От HandleMappings я нажал "Добавить Управляемый Handler"

  3. заполняет столбцы -> Путь запроса: * .tm Тип: SampleServer.MyHandler Имя: MyHandler

  4. Попробуйте открыть localhost/SampleServer.tm/

Я получил эту ошибку: недействительный модуль «ManagedPipelineHandler» в списке модулей MyHandler. Код Ошибка: 0x8007000d

Web.сonfig файла генерируется автоматически:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <handlers> 
      <add name="MyHandler" path="*.tm" verb="*" type="SampleServer.MyHandler" resourceType="Unspecified" preCondition="integratedMode" /> 
     </handlers> 
    </system.webServer> 
</configuration> 

Мой handler.cs файл:

namespace SampleServer 
{ 
    class MyHandler : IHttpHandler 
    { 
     public bool IsReusable 
     { 
      get { return false; } 
     } 

     public void ProcessRequest(HttpContext context) 
     { 
      DateTime dt = DateTime.Now; 
      context.Response.Write(String.Format("<h1>{0}</h1>", dt.ToLongTimeString())); 
     } 
    } 
} 
+0

@Kirk Woll Я отредактировал мое сообщение. Я уверен, что что-то не так в настройке IIS. –

+0

Что делать, если вы пробовали без косой черты: «localhost/SampleServer.tm»? –

+0

Ничего не изменилось. Это дало ту же ошибку. –

ответ

0

Наконец нашел ответ. Это связано с тем, что я удаляю свой предыдущий IIS и устанавливаю IIS7. IIS необходимо настроить библиотеку .NET.

Выполнить эту команду на ЦМД:

"%windir%\Microsoft.NET\Framework\"YOUR .NET VERSION"\aspnet_regiis.exe" -i 

И потом, если .NET версия вашего сайта ниже, чем версия вашего * .dll файл, изменить его из пула приложений. После этого он работает хорошо.

+0

Вам нужно быть очень осторожным при запуске 'aspnet_regiis.exe -i', потому что он установит эту конкретную версию ASP.NET прямо на всех ваших сайтах. Это может быть нежелательно. Вы должны выбрать версию фреймворка, которую хотите использовать, настроив параметр «Версия .NET Framework» в пуле приложений, на котором находится ваш сайт. – Kev

Смежные вопросы