gpt4 book ai didi

asp.net - HttpModule 似乎不起作用

转载 作者:行者123 更新时间:2023-12-01 12:01:59 25 4
gpt4 key购买 nike

我创建了一个简单的 HttpModule 来记录我现有网络服务的使用情况。有一个包含单个类的 dll

public class TrackingModule : System.Web.IHttpModule
{
public TrackingModule(){}

public void Init(System.Web.HttpApplication context)
{
context.BeginRequest+=new EventHandler(context_BeginRequest);
}

public void Dispose()
{

}

private void context_BeginRequest(object sender, EventArgs e)
{
try
{
Microsoft.ApplicationBlocks.ExceptionManagement.ExceptionManager.Publish( new Exception("Log attept") );
HttpApplication app = (HttpApplication)sender;
string method = app.Request.RawUrl;
SaveUseToDatabase( app.Request.UserHostAddress, method );
}
catch( Exception ex )
{
try
{
Microsoft.ApplicationBlocks.ExceptionManagement.ExceptionManager.Publish( ex );
}
catch{}
}
}
}

编译 dll 后,我将其添加到 webservice 的 bin 文件夹和 webservice 的 web.config 中,我添加:

<system.web>
<httpModules>
<add name="TrackingModule" type="WebserviceTrackingModule.TrackingModule, WebserviceTrackingModule"/>

这在我的电脑上运行良好,但是当我将它复制到生产服务器时,没有任何反应。数据库中没有新条目,ExceptionManager 没有记录任何条目。就好像它根本不存在一样。

我可以缺少什么?

编辑:在执行另一项测试后,我可以补充说,当我将它添加到具有自己的顶级虚拟目录的 Web 服务时,它会起作用。它不适用于驻留在作为另一个虚拟目录的子文件夹的虚拟目录中的 Web 服务。

我知道 HttpModules 设置被子目录继承,但看起来父目录的存在妨碍了。

最佳答案

我相信我找到了更好的解决方案。在运行时而不是在 Web 配置中附加模块。查看Rick Strahl's blog post了解详情。

关于asp.net - HttpModule 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/378101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com