当前位置: 代码迷 >> Web Service >> 为什么自定义的HttpModule只对.aspx起作用,对.asmx确不起作用,该如何解决
  详细解决方案

为什么自定义的HttpModule只对.aspx起作用,对.asmx确不起作用,该如何解决

热度:183   发布时间:2016-05-02 02:53:31.0
为什么自定义的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
  相关解决方案