2015-06-01 8 views
1

Я работаю с WCF и Silverlight. я хочу изменить EndpointAddress с кодом за динамически:ActionNotSupportedException произошло после изменения EndpointAddress

EndpointAddress endpointAdress = new EndpointAddress(serviceUrl); 
var proxy = new ServerConnectionClient(context); 
proxy.Endpoint.Address = endpointAdress; 

Подключение открыт успешно, но после вызова метода из службы произошла ActionNotSupportedException.

Web.config:

<configuration> 
    <system.serviceModel> 
    <bindings> 
     <customBinding> 
     <binding name="NetTcpBinding"> 
      <binaryMessageEncoding /> 
      <tcpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" /> 
     </binding> 
     </customBinding> 
    </bindings> 
    <client> 
     <endpoint address="net.tcp://MyIpAddress:4502/engine/net" binding="customBinding" 
     bindingConfiguration="NetTcpBinding" contract="CTMSConnection.IServerConnection" 
     name="NetTcpBinding" /> 
    </client> 
    </system.serviceModel> 
</configuration> 

Вверху конфигурации генерируемого после Add Service Reference.

Где проблема?

ответ

1

это очень легко. вы должны сгенерировать код точно так же с Web.Config.

вы должны использовать следующий код:

 System.ServiceModel.EndpointAddress endpointAddress = new System.ServiceModel.EndpointAddress("net.tcp://YourIpAddress:4502/CTMSEngine/net"); 

     System.ServiceModel.Channels.CustomBinding customBinding = new System.ServiceModel.Channels.CustomBinding(); 

     System.ServiceModel.Channels.BinaryMessageEncodingBindingElement BMEelement = new System.ServiceModel.Channels.BinaryMessageEncodingBindingElement(); 
     System.ServiceModel.Channels.TcpTransportBindingElement TcpTelement = new System.ServiceModel.Channels.TcpTransportBindingElement(); 
     customBinding.Elements.Add(BMEelement); 
     customBinding.Elements.Add(TcpTelement); 
     TcpTelement.MaxReceivedMessageSize = 2147483647; 
     TcpTelement.MaxBufferSize = 2147483647; 

     proxy = new ServerConnectionClient(customBinding, endpointAddress); 
+0

я хочу изменить только URL. но я проверю ваш код. –

+1

вы не можете создать новый ServerConnectionClient, а затем изменить endpointAdress. – MTSS

+0

спасибо за ответ. –