Разработка модуля для IIS7 - PullRequest
1 голос
/ 24 мая 2011

Я работал над модулем для IIS7.Я хочу перехватывать запросы от определенного браузера.Это только в dev, но сейчас мой код выглядит следующим образом:

using System;
using System.Collections.Generic;
using System.Text;
using System.Web;

namespace MyNamespace
{
    class MyModule : IHttpModule
    {

        #region IHttpModule Members

        public void Dispose()
        {
        }

        public void Init(HttpApplication context)
        {
            context.PreRequestHandlerExecute += new EventHandler(OnPreRequestHandlerExecute);
        }

        #endregion


        public void OnPreRequestHandlerExecute(Object source, EventArgs e)
        {
            HttpApplication app = (HttpApplication)source;
            HttpRequest request = app.Context.Request;

            string useragent = "AGENT: " + request.Headers["User-Agent"];

            throw new HttpException(403, useragent);
            // stuff here
        }
    }
}

Я хочу проверить это, но, несмотря на чтение многочисленных статей по добавлению его в IIS7, я не могу заставить его работать.

Примеры: http://learn.iis.net/page.aspx/366/developing-iis-70-modules-and-handlers-with-the-net-framework/ http://learn.iis.net/page.aspx/269/how-to-create-a-simple-iis-manager-module/

У меня есть строго названный модуль, подписанный, вы называете его.Я не могу заставить его отображаться в разделе «Управляемые модули для IIS».

Если бы кто-то, имеющий опыт в этой области, мог указать мне правильное направление, я был бы очень признателен!Код очень неполный, и я не ожидаю, что он будет идеальным, но просто заставить его работать под IIS7 прямо сейчас было бы огромным шагом вперед.

Спасибо!

1 Ответ

1 голос
/ 24 мая 2011

Вы можете просто перетащить файл MyNameSpace.dll в папку bin, а затем сослаться на него в разделе web.config следующим образом:

<add name="MyModuleName" type="MyNamespace.MyModule, MyNamespace" preCondition="managedHandler" /> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...