WCF服务自定义消息检查器

我构建了一个使用自定义用户名和密码身份validation的WCF服务,我正在使用以下代码从客户端应用程序进行测试:

using (ServiceReferenceClient.TestServiceClient tc = new ServiceReferenceClient.TestServiceClient()) { tc.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None; tc.ClientCredentials.UserName.UserName = "User1"; tc.ClientCredentials.UserName.Password = "Pwd1"; tc.ServiceMethod(param1, param2, param3); } 

它工作正常,但我需要看到发送到WCF服务和响应的实际SOAP请求。 我怎么能从我的客户那里做到这一点?

我知道我可能必须编写自己的自定义消息检查器,并想了解如何构建一个

上述评论中提到的选项适用于测试。 如果您想要在代码中包含更强大的function,那么我认为您要实现的是WCF Message Inspector 。

有关如何在客户端执行此操作的更多信息:

您可以通过实现System.ServiceModel.Dispatcher.IClientMessageInspector并将其插入到客户端运行时来检查或修改WCF客户端上的传入或传出消息。

https://msdn.microsoft.com/en-us/library/ms733786(v=vs.110).aspx

一个很好的例子:

https://weblogs.asp.net/paolopia/writing-a-wcf-message-inspector