2016-07-22 112 views
1

我建使用自定义的用户名和密码验证,我从客户端应用程序用下面的代码测试它WCF服务: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请求。我如何从我的客户那里做到这一点?

我知道我可能会写我自己的自定义消息督察,并想就如何建立一个

+2

你可以使用像一个网络调试代理[小提琴手(http://www.telerik.com/fiddler)。 – khlr

+0

最佳做法是**不**使用WCF客户端使用':https://msdn.microsoft.com/en-us/library/aa355056(v=vs.110).aspx – Tim

+0

您也可以使用SOAPUI ,甚至WCFTestClient(您可以在WCFTestClient中看到发送和接收的XML)。 – Tim

回答

1

在上述意见中提到的选项一些指针是良好的测试。如果您希望您的代码中包含更强大的功能,那么我认为您要实施的是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

+1

更容易使用WCFTestClient或SOAPUI或Fiddler进行测试,IMO。 – Tim

+1

SOAP UI和WCF测试客户端仅适用于测试 - 同意。 Messasge Inspector选项将可能有助于非开发环境 - 就故障排除而言。我想要所有的选择在我的处置。 –