我有一个WCF网络服务,实际上有许多网络服务,都使用net.tcp并通过WAS托管在IIS中。多个客户端正在调用这些服务,所有这些服务都已知但无法控制(即,我无法更改其代码,因此也无法更改服务)。其中一些客户对服务不是很好,导致很多错误,我想找出哪些是有问题的。我不能查看传递的凭据,因为他们不使用身份验证,我不能使用ip / port,因为他们都来自同一个地方。我现在的挑战是找到一些区分这些客户端的方法,例如通过查看调用程序集或远程系统上标识客户端的东西。知道任何此类信息的人吗?我可以自己访问IIS日志,事件查看器,跟踪文件和服务(我可以将任何内容放入不会中断正常流程的代码中)。
答案 0 :(得分:2)
查看WCF内置的日志记录和跟踪机制:
搜索“WCF,跟踪,记录”时需要更多。 WCF内置的支持非常广泛 - 您可以轻松记录消息,查看消息来源,分析它们 - 您可以根据需要打开或关闭消息。
答案 1 :(得分:1)
您可以编写一些自定义行为来检查您收到的服务消息;您可以在此处找到示例:Writing a WCF Message Inspector和Simple WCF Service Behavior: Inspect Messages Through Debug Output
答案 2 :(得分:0)
似乎您的问题不在于日志记录机制;这是找到区分客户的方法。
如果您无法控制客户端的代码,您至少可以更改他们用于端点的URL吗?如果是这样,那么我建议您在多个端点地址公开服务,然后让每个客户端使用唯一的地址。然后,该地址将作为客户的代理。