【问题标题】:Developing a Module for IIS7为 IIS7 开发一个模块
【发布时间】:2011-05-24 14:39:59
【问题描述】:

我一直在为 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 下工作将是一个巨大的进步。

谢谢!

【问题讨论】:

  • 您可以简单地将 MyNameSpace.dll 文件放到 bin 文件夹中,然后在 web.config 的 部分中像这样引用它:
  • @Tchami:我在 web.config 中进行了设置,现在它抛出错误:“'/' 应用程序中的服务器错误。不提供此类页面。”当我删除页面时加载网络配置。是配置错误还是模块错误,我该如何纠正?谢谢!!!
  • @Tchami:您可以将您的评论添加为问题吗?我会接受它作为答案。

标签: c# iis iis-7


【解决方案1】:

您可以简单地将 MyNameSpace.dll 文件放到 bin 文件夹中,然后在 web.config 部分中像这样引用它:

<add name="MyModuleName" type="MyNamespace.MyModule, MyNamespace" preCondition="managedHandler" /> 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-20
    • 2016-08-28
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    相关资源
    最近更新 更多