【问题标题】:WCF Custom endpoints - Affecting Bindings?WCF 自定义终结点 - 影响绑定?
【发布时间】:2015-04-17 09:10:32
【问题描述】:

我有一个自托管的 WCF 服务和客户端。
客户端没有服务引用,我以编程方式将其链接到端点。

客户端和服务中的绑定都设置为BasicHttpBinding -

服务

Uri baseAddress = new Uri("http://localhost:8733/Design_Time_Addresses/DSCentralService/Service1/");

DSCentralService.Service1 contentServer = new DSCentralService.Service1();

//initialise the servicehost
centralSvrHost = new ServiceHost(typeof(DSCentralService.Service1), baseAddress);

//add bindings
centralSvrHost.AddServiceEndpoint(
      typeof(DSCentralService.IService1), 
      new BasicHttpBinding(), 
      baseAddress
);

客户

serviceFactory = new ServiceFactory<DSCentralService.IService1>();

String serviceAddress="http://localhost:8733/Design_Time_Addresses/DSCentralService/Service1/";

iContentServer = serviceFactory.GetService(serviceAddress);

服务工厂类

public class ServiceFactory<T> where T : class
{
    private T _service;

    public T GetService(string address)
    {
        return _service ?? (_service = GetServiceInstance(address));
    }

    private static T GetServiceInstance(string address)
    {               
        BasicHttpBinding basicBinding = new BasicHttpBinding();
        basicBinding.Name = "DSCentralSvr";
        basicBinding.TransferMode = TransferMode.Streamed;
        basicBinding.MessageEncoding = WSMessageEncoding.Mtom;
        basicBinding.MaxReceivedMessageSize = 10067108864;
        basicBinding.SendTimeout = new TimeSpan(0, 10, 0);
        basicBinding.OpenTimeout = new TimeSpan(0, 10, 0);
        basicBinding.CloseTimeout = new TimeSpan(0, 10, 0);
        basicBinding.ReceiveTimeout = new TimeSpan(0, 10, 0);

        EndpointAddress endpoint = new EndpointAddress(address);

        return ChannelFactory<T>.CreateChannel(basicBinding, endpoint);
    }
}

但在调试时,我收到了

的常见错误

客户端和服务绑定可能不匹配

在客户端或服务的任何配置文件中都没有绑定设置,以避免与编程设置发生冲突。

有什么我遗漏的东西,在以编程方式执行此操作时是必需的吗?是什么导致了这种不匹配?

【问题讨论】:

    标签: wcf wcf-binding


    【解决方案1】:

    您使用默认 BasicHttpBinding 托管服务,这意味着 TransferMode Buffered 和 MessageEncoding Text

    在您的客户端中,您分别使用StreamedMtom

    【讨论】:

    • 你先生。我非常喜欢你。我在主机中的绑定中添加了相同的自定义属性,一切运行顺利。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    相关资源
    最近更新 更多