我在类库中引用了WCF服务,在Web应用程序中引用了该类库。当我尝试从服务中调用一个方法时,我遇到异常。
BasicHttpBinding binding = new BasicHttpBinding()
binding.Security.Mode = BasicHttpSecurityMode.Transport;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
binding.Name = "CoreSoapPort";
binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;
binding.BypassProxyOnLocal = false;
binding.UseDefaultWebProxy = true;
binding.MessageEncoding = WSMessageEncoding.Mtom;
binding.AllowCookies = false;
binding.TransferMode = TransferMode.Buffered;
binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
Encoding textencoding = Encoding.UTF8;
binding.TextEncoding = textencoding;
binding.MaxReceivedMessageSize = Int32.MaxValue;
这是我的配置
corners
我在应用程序中创建了绑定对象并传递给了服务。
corners
我尝试将配置更改为多个以匹配服务器配置。但没有运气。
答案 0 :(得分:0)
您是否尝试将邮件编码配置更改为RFC5280?恕我直言,我认为你不应该使用配置文件和编程方式配置你的WCF服务,因为它会给你带来很多麻烦。我建议坚持一个,它是配置文件或以编程方式。
答案 1 :(得分:0)
由于绑定不匹配而发生错误。 您的服务器绑定是 BasicHttpBinding ,您的客户端是 CustomBinding 。
由于您的服务使用 BasicHttpBinding ,请尝试使用相同的绑定配置您的客户端,但是,如果您要使用Soap12,则需要将服务器端配置为 CustomBinding ,像这样:
CustomBinding binding = new CustomBinding();
SymmetricSecurityBindingElement ssbe =
SecurityBindingElement.CreateSspiNegotiationBindingElement(true);
// Add the SymmetricSecurityBindingElement to the BindingElementCollection.
binding.Elements.Add(ssbe);
binding.Elements.Add(new TextMessageEncodingBindingElement());
binding.Elements.Add(new HttpTransportBindingElement());
您可以在此处阅读更多内容:https://msdn.microsoft.com/en-us/library/ms730305%28v=vs.110%29.aspx
希望它有所帮助。