WCF 自定义端点 - 影响绑定?

WCF Custom endpoints - Affecting Bindings?

我有一个自承载 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);

服务工厂Class

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);
    }
}

然而在调试时,我收到

的常见错误

The client and service bindings may be mismatched

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

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

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

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