读书人

为什么自定义的HttpModule只对.aspx起

发布时间: 2012-03-23 12:06:21 作者: rapoo

为什么自定义的HttpModule只对.aspx起作用,对.asmx确不起作用

C# code
public class LogErrorModule : IHttpModule    {        public void Init(HttpApplication context)        {            context.Error += new EventHandler(context_Error);        }        void context_Error(object sender, EventArgs e)        {            File.WriteAllText("C:\\doc\\error.txt",HttpContext.Current.Error.ToString());        }        public void Dispose()        {                    }    }

HTML code
<add name="LogErrModule" type="ErrorHttpModule.LogErrorModule"/>

打开一个.aspx页面,显示的抛出异常,会记录下来
但是调用一个Web服务,显示抛出异常,确记录不下来

[解决办法]
asmx 不是交给aspnet_wp进程解析的。webservice的拦截有另外的做法。
[解决办法]
我看了看,感觉是提前被处理掉了错误。BeginRequest和EndRequest在HttpModule里都能拦截到。

用 SoapExtension 应该能里处理

http://msdn.microsoft.com/zh-cn/library/system.web.services.protocols.soapextension(v=vs.80).aspx

读书人网 >Web Service

热点推荐