Как развернуть код IHttpHandler в IIS
У меня есть простой обработчик, написанный на C# с IHttpHandler. Как я могу заставить его работать на IIS? Я следовал учебному пособию в http://mvolo.com/developing-iis7-modules-and-handlers-with-the-net-framework/ но он не работал для меня.
В IIS7 мои шаги:
Я создаю новую веб-страницу под названием "SAMPLE"
Из HandleMappings я нажал "Добавить управляемый обработчик"
Я заполняю столбцы -> Путь запроса: *.tm Тип: SampleServer.MyHandler Имя: MyHandler
Попробуйте открыть 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()));
}
}
}
1 ответ
Наконец-то нашел ответ. Это потому, что я удаляю свой предыдущий IIS и устанавливаю IIS7. IIS нуждается в настройке библиотеки.NET.
Запустите эту команду на cmd:
"%windir%\Microsoft.NET\Framework\"YOUR .NET VERSION"\aspnet_regiis.exe" -i
И затем, если версия.NET вашего веб-сайта ниже, чем версия вашего *.dll-файла, измените его из пула приложений. После этого все работает хорошо.