IIS 7 日志记录 Web 服务方法
我有一个在 IIS 7 下托管的 Web 服务(不是 WCF 服务),该 Web 服务有两种方法:method1 和 method2。
我希望在不修改 Web 服务代码的情况下区分 method1 的请求与 method2 的请求。
在 IIS 7 日志下,我可以看到对 Web 服务的请求,Web 服务 URL 记录在“cs-uri-stem”字段下,但“cs-uri-query”字段为空。
是否可以在不修改 Web 服务代码的情况下记录 Web 服务方法的请求?
I have a web service (not a WCF service) hosted under IIS 7, the web service has two methods: method1, and method2.
I am looking to differentiate between the requests for method1, versus the requests for method2, without modifying the web service code.
Under the IIS 7 logs, I can see the requests to the web service, the web service URL gets logged under the "cs-uri-stem" field, but the "cs-uri-query" field is empty.
Is there anyway to log the requests for the web service methods, without modifying the web service code?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以在处理管道的各种方法中记录所有传入请求。例如,在
Global.asax
中添加BeginRequest
的处理程序:You can log all incoming request inside various methods of the processing pipeline. For example, add a handler for
BeginRequest
in yourGlobal.asax
:几年后,我不得不访问具有数百种方法的 ASMX,但无法转换为 WCF。这是一个 ASMX 扩展点,允许您记录方法名称而无需访问所有方法。在这里,我使用 log4net 来记录方法名称 YMMV
首先,创建一个 SoapExtension 类:
然后,在 web.config 中注册该扩展:
Years later, I've had to visit an ASMX with hundreds of methods and it's just not possible to convert to WCF. Here is an ASMX extension point that allows you to log the method name without visiting all methods. Here, I'm using log4net to log the method name, YMMV
First, create a SoapExtension class:
Then, register the extension in your web.config:
这是微软官方的文章:
http://support.microsoft.com/kb/313437
1- 启动 Internet 信息服务 (IIS ) 经理。
2- 展开服务器名称,然后展开网站或 FTP 站点。右键单击要启用日志记录的网站或 FTP 站点,然后单击“属性”。
3- 单击“网站”选项卡,或单击“FTP 站点”选项卡。
4- 单击以选中启用日志记录复选框。
5- 在活动日志格式框中,单击您要使用的格式。
6- 单击“属性”,然后指定所需的设置。例如,如果您使用 W3C 扩展日志文件格式,请按照下列步骤操作
:如果您运行的是 IIS 6.0,请单击“常规”选项卡。如果您运行的是 IIS 5.0 或 IIS 4.0,请单击“常规属性”选项卡。指定要用于创建新日志文件的计划。例如,要每天创建一个新的日志文件,请单击“每日”。
b.如果要使用本地时间,请单击以选中“使用本地时间进行文件命名和翻转”复选框。
注意 除 W3C 扩展日志文件格式外,所有日志文件格式均使用当地时间午夜时间。默认情况下,W3C 扩展日志文件格式使用午夜协调世界时间(格林威治标准时间)。要使用当地时间午夜,请单击以选中“使用当地时间进行文件命名和翻转”复选框。
c.如果您运行的是 IIS 6.0,请单击“高级”选项卡。如果您运行的是 IIS 5.0 或 IIS 4.0,请单击“扩展属性”选项卡。
d.指定您想要的选项。例如,指定“自定义数据”部分中列出的属性。单击“确定”。
e.单击“确定”。
Here is the oficial article from microsoft:
http://support.microsoft.com/kb/313437
1- Start Internet Information Services (IIS) Manager.
2- Expand ServerName, and then expand Web Sites or FTP Sites. Right-click the Web site or the FTP site where you want to enable logging, and then click Properties.
3- Click the Web Site tab, or click the FTP Site tab.
4- Click to select the Enable logging check box.
5- In the Active log format box, click the format that you want to use.
6- Click Properties, and then specify the settings that you want. For example, if you use W3C Extended log file format, follow these steps:
a. If you are running IIS 6.0, click the General tab. If you are running IIS 5.0 or IIS 4.0, click the General Properties tab. Specify the schedule that you want to use to create new log files. For example, to create a new log file every day, click Daily.
b. If you want to use local time, click to select the Use local time for file naming and rollover check box.
Note Midnight local time is used for all log file formats except W3C Extended log file format. By default, W3C Extended log file format uses midnight Coordinated Universal Time (Greenwich Mean Time). To use midnight local time, click to select the Use local time for file naming and rollover check box.
c. If you are running IIS 6.0, click the Advanced tab. If you are running IIS 5.0 or IIS 4.0, click the Extended Properties tab.
d. Specify the options that you want. For example, specify the properties that are listed in the "Customize the data" section. Click OK.
e. Click OK.