WCF端点绑定设置不';我不能得到更新

WCF端点绑定设置不';我不能得到更新,wcf,web-services,binding,endpoints,Wcf,Web Services,Binding,Endpoints,所有更改WCF自托管服务端点配置设置的尝试均失败: public void Start() { BasicHttpBinding binding = new BasicHttpBinding(); binding.Name = "NAVBinding"; //--------------------START editing------------------------------- TimeSpan interval = new Tim

所有更改WCF自托管服务端点配置设置的尝试均失败:

public void Start()
    {
        BasicHttpBinding binding = new BasicHttpBinding();
        binding.Name = "NAVBinding";
//--------------------START editing-------------------------------
        TimeSpan interval = new TimeSpan(1, 50, 00); // all these following (inbetween comments) lines have no effect
        binding.MaxReceivedMessageSize = 2147483647;
        binding.MaxBufferSize = 2147483647;
        binding.ReceiveTimeout = interval;
        binding.OpenTimeout = interval;
        binding.CloseTimeout = interval;
        binding.SendTimeout = interval;
        XmlDictionaryReaderQuotas readerQuotas = new XmlDictionaryReaderQuotas();
        readerQuotas.MaxDepth = 2147483647;
        readerQuotas.MaxStringContentLength = 2147483647;
        readerQuotas.MaxArrayLength = 2147483647;
        readerQuotas.MaxBytesPerRead = 2147483647;
        readerQuotas.MaxNameTableCharCount = 2147483647;
        binding.ReaderQuotas = readerQuotas;
//----------------------END editing---------------------------
        binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
        Uri baseAddress = new Uri("http://localhost:8000/nav/customer");
        Customer_Service service = new Customer_Service();
        serviceHost = new ServiceHost(service, baseAddress);
        serviceHost.AddServiceEndpoint(typeof(ICustomer_Service), binding, baseAddress);
        OpenMetadataExchange(baseAddress);
        service.navEventListner = this;
        serviceHost.Open();

    }
但是我可以在wcfStorm应用程序的帮助下轻松地更改
MaxReceivedMessageSize
属性,在这种情况下,它确实发生了更改。但重新启动服务后,一切都会恢复到默认设置(例如MaxReceivedMessageSize=65536)


拜托,我在干什么?如何编辑我的代码以更新新值?

服务器端设置这些值不会自动在客户端设置这些值

仅在服务器端设置它们是不够的-客户端和服务器之间的传输由客户端和服务器之间的两个设置中最小的一个决定。即使服务器允许2GB的消息大小,如果客户端仍然坚持使用64KB,则64KB的较小值获胜。这并不意味着服务器端的2GB设置不存在,它确实存在,但由于客户端使用较小的设置,因此它没有效果


如果要在客户端使用相同的设置,则需要相应地配置客户端。创建客户端代理或从app.config文件配置客户端时,您也需要执行相同的操作。

您如何知道这些设置不起作用??您是否希望更新配置文件,或者您的期望是什么?我知道,尝试调用应该传输大于65536的数据的方法时,设置不起作用,在这种情况下,我有一个错误(另一个传输较少数据的方法完成了)。如果我使用wcf测试应用程序(在我的例子中是wcfstorm),将两个参数MaxReceivedMessageSize和MaxBufferSize更改为更大的值,则具有大数据的方法调用并完成时不会出现问题。此外,我还尝试了大量使用app.config文件(基于客户端和服务器),但没有任何帮助。在我的问题中我没有强调这一点,因为我认为那些C#硬编码设置影响更大(也许我很抱歉,但事实上,起初在服务器端服务应用程序中,我也没有app.config文件,而且一切都很好(除了那些新的MessageSize绑定参数)。谢谢你,Marc,你澄清了我对这个问题的看法。我不知道传输设置是服务器和客户端的最小设置。这种无知导致我盲目尝试,但没有清楚的理解。现在我可以传输的数据量肯定大于65536(事实上,我只删除了服务器端app.config文件中的所有设置,这些设置与客户端app.config的设置不同)。更大的数据仍然存在问题,但似乎是因为另一个问题,我到目前为止还没有理解。再次感谢!