【发布时间】: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:您可以将您的评论添加为问题吗?我会接受它作为答案。