Как прописать обработчик в web.config для iis7

Мне пришлось 301 перенаправить некоторые htm-страницы. Я пытаюсь сделать это через HttpHandler. Этот веб-сайт не использует пространство имен. Я создал тестовый обработчик следующим образом:

<%@ WebHandler Language="C#" Class="htmlhandler" %>

using System;
using System.Web;

public class htmlhandler : IHttpHandler {

    public void ProcessRequest (HttpContext context) {
        string url = HttpContext.Current.Request.Url.AbsoluteUri;
        context.Response.ContentType = "text/plain";
        context.Response.Write(url);
    }

    public bool IsReusable {
        get {
            return false;
        }
    }

}

В Web.config пробовал зарегистрировать обработчик следующим образом:

<httpHandlers>
  <add verb="*" path="*.htm" type="htmlhandler"/>
</httpHandlers>

Но я получаю следующую ошибку:

Parser Error Message: Could not load file or assembly 'htmlhandler' or one of its dependencies. The system cannot find the file specified.

Пожалуйста помоги. Мой обработчик находится в папке App_Code, но сервер не может его найти.


person Ratna    schedule 28.01.2013    source источник


Ответы (1)


Попробуйте использовать <add verb="*" path="*.htm" type="htmlhandler, assemblyName"/>.

Также <system.webServer> действителен, только если вы используете пул приложений в интегрированном режиме. Проверьте, используете ли вы пул приложений в интегрированном или классическом режиме.

person Amit Rai Sharma    schedule 28.01.2013
comment
да проблема ‹system.webServer› решена, спасибо, можете ли вы сказать, почему мой обработчик не вызывается на рабочем сервере, который находится на общем сервере, но работает в локальной системе. - person Ratna; 29.01.2013
comment
Какая версия IIS используется для производства? - person Amit Rai Sharma; 29.01.2013
comment
Его iis7 на сервере Windows2008. Я разговаривал с серверными людьми, они не разрешают обработчики ресурсов, отличных от собственных ресурсов .net. Спасибо за помощь. - person Ratna; 30.01.2013