我需要使用具有以下要求的web服务:
- https/ssl
- MTOM
- 需要在SOAP标头中指定用户/密码
- 1(可能很大)二进制文件作为有效载荷
我不控制这个web服务,需要使用它。由于我是WCF的新手,我需要一些基本的帮助。我的问题是:
- 当我在VS2010中添加服务引用时,我会在配置中获得一个基本的httpbinding。我想我必须使用wshttpbinding,对吗?我在哪里/如何更改/配置它?直接在配置中
- 如何配置我的客户端以在soap标头中指定用户/密码
- 如何"附加"二进制文件
感谢
如果您添加了服务引用,但在配置文件中没有收到任何错误、警告或任何注释部分,那么您已经拥有了所需的内容。只需使用您获得的代码。该引用将为您创建客户端代理,并具有将二进制数据传递到服务器所需的方法。代理还允许设置客户端凭据:
var proxy = new ServiceContractNameClient();
proxy.ClientCredentials.UserName.Name = "userName";
proxy.ClientCredentials.UserName.Password = "pwd";
var result = proxy.SendSomeVeryLargeData(new SomeDataContract() { Data = yourData });
BasicHttpBinding同时支持SOAP标头和MTOM编码中的凭据。
通常在使用web服务时,不需要更改绑定。
您可能需要指定客户端凭据。
Service1Client service = new Service1Client();
service.ClientCredentials.UserName.UserName = "user";
service.ClientCredentials.UserName.Password = "pass";
请参阅本文。
我找到了一篇关于如何使用WCF配置MTOM客户端的好文章。这是一个非常基本的教程。我希望它能有所帮助。
http://mstecharchitect.blogspot.com/2009/01/wcf-with-mtom-message-encoding.html