MessageSecurityException For messages with the message "http: // ..." no parts of the signature message are specified

here is the configuration file used by both the client and server

<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.serviceModel> <bindings> <wsHttpBinding> <binding name="WSHttpBinding_IPM_Service" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" /> <security mode="Message"> <transport clientCredentialType="Windows" proxyCredentialType="None" realm="" /> <message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default" establishSecurityContext="true" /> </security> </binding> </wsHttpBinding> </bindings> <client> <endpoint address="http://localhost:8080/PM_Service" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IPM_Service" contract="IPM_Service" name="WSHttpBinding_IPM_Service"> <identity> </identity> </endpoint> </client> </system.serviceModel> </configuration> 

this is the code block where I get the error.

  ProgrammingMaster_ServiceClient aClient = new ProgrammingMaster_ServiceClient(); aClient.BeginProgrammingSession(0x01); aClient.Close(); 

The second line is an exception. ProgrammingMaster_ServiceClient is created using the svcutil.exe tool.

this is the code i use to start the server.

 public bool StartService(string aIp) { string lsInstanceId = pFBlock.InstanceId.ToString(); Uri loBaseAddr = new Uri(string.Format("http://localhost:808{0}/{1}", lsInstanceId, pFBlock.FBlockName)); pLocalHost = new ServiceHost(typeof(Shadow_ProgrammingMasterService), loBaseAddr); Start(aIp); return IsHostOpen; } private void Start(string aIp) { Shadow_ProgrammingMasterService.SetAPI(this); try { pLocalHost.AddServiceEndpoint(typeof(IProgrammingMaster_Service), new WSHttpBinding(), "PM_Service"); ServiceMetadataBehavior loSmb = new ServiceMetadataBehavior(); loSmb.HttpGetEnabled = true; pLocalHost.Description.Behaviors.Add(loSmb); try { pLocalHost.Open(); IsHostOpen = true; pPM_Client = new ProgrammingMasterProxyClient(this, pOutput); pPM_Client.IpAddress = aIp; this.Subscribe(pPM_Client); pOutput.setComment("ProgrammingMasterService initialized"); } catch (CommunicationException ce) { pOutput.setError(ce.Message); pLocalHost.Abort(); IsHostOpen = false; } } catch (CommunicationException ex) { pOutput.setError(ex.Message); pLocalHost.Abort(); IsHostOpen = false; //this.Unsubscribe(pOSTTSClient); //pOSTTSClient = null; } } 

Anyone have any ideas on what could be causing this?

+4
source share
1 answer

The reason this happens in your case is because the WCF service code itself has been modified, recompiled (and essentially deployed in a debugger), while a client with an outdated service link expects and depending on what something is subject to change and therefore conflicts are coming.

Updating customer service help will resolve this issue.

To continue, the above does not mean that you cannot change any code in the service itself as soon as it is referenced by the client (without interrupting the client), therefore, this problem involves significant changes in the parts of the service that the client depends on, for example, signatures of public methods , existing DataMember properties of existing DataContract types, etc.

In contrast to this, you can change the method body of existing service calls to your heart content (the client does not care how the service works, how to do it); you can also add new members to existing composite DataContract types so that new customers can quickly use your updates, preventing script types like DataType2 with redundancy, etc.

+11
source

Source: https://habr.com/ru/post/1340218/


All Articles