【发布时间】:2011-02-25 12:35:57
【问题描述】:
我正在尝试在我无法控制的托管服务器上安装 asp.net http 模块(它安装了 asp.net 4.0 frameworkd 和 IIS v7.5)。到目前为止,我在本地编译了我的 module.cs 文件(我使用 Visual Studio 2010 Publish Web 选项编译它)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MyNamespace
{
public class myModule : IHttpModule
{
public myModule() { }
public void Init(HttpApplication application)
{
application.EndRequest += (new EventHandler(this.Application_EndRequest));
}
private void Application_EndRequest(Object source, EventArgs e)
{
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
context.Response.Write("msg from EndRequest<br>");
}
public void Dispose() { }
}
}
并将已编译的 .dll 上传到服务器 webroot/bin 文件夹,我将 webroot/web.config 文件更改为包含
<system.webServer>
<modules>
<add name="myModule" type="MyNamespace.myModule"/>
</modules>
</system.webServer>
然后什么也没发生。有什么问题,如何调试?
编辑:刚刚发现我在经典模式下运行。它适用于针对该模式更正的 web.config。对不起,我的头坏了。
【问题讨论】:
-
不,我不明白为什么。我确实喜欢 msdn 和 learn.iis.net 上所说的
-
是否有另一个配置部分删除了所有模块?
-
不,这是我在本地机器上的 web.config:
不行。 -
在远程托管服务器上我只能看到 webroot/web.config 并且它也不会删除模块。子文件夹中的 web.config-s 也不会删除模块
-
你试过用
HttpApplication.Context.Current代替HttpApplication.Context吗?
标签: asp.net .net visual-studio-2010 iis-7