0

I am upgrading a SOAP Client from .Net Framework 4.7 to .net Core.

The SOAP API Service is the same (3rd party API, https) in both cases.

The current client application uses a generated proxy file, created from a WSDL-url. The Generated proxy file uses the .NET Framework Soap Protocol Namespace in the code. Works 100%.

The new client is created with .NET 6. The new client application uses a generated proxy file, created from the same WSDL-url. The Generated proxy file differs from the other in the way that it uses the .NET 6 Libraries, etc, understandably.

After creating the new client, inspecting the client variable reports that

"'c.Channel' threw an exception of type 'System.InvalidOperationException'"

The Innerexception reports:

"{"Namespace='XXXXXXXXXX' is not supported with rpc\\literal SOAP. The wrapper element has to be unqualified."}"

the InnerChannel reports:

"The communication object, System.ServiceModel.ChannelFactory`1[ServiceReference1.Iws], cannot be used for communication because it is in the Faulted state."

I suspect that it can be the serializer that cannot serialize/deserialize SOAP messages.

Any suggestions on how I should work around this issue - obviously I have tried the suggested possible workarounds on Stackoverflow, without any success.

Stefan
  • 187
  • 3
  • 14
  • The following article helped me: https://stackoverflow.com/questions/2158106/web-reference-vs-service-reference It seems like the SOAP WSDL file that I referenced with .Net , generated a "Web Reference" and used the old style XML Serializer. It also generated Proxy file referencing the .Net Framework SOAP Protocol The .Net Core project created a "Service Reference", with a newer proxy file, using .net core XMLserializer. The CORE Proxy was not compatible with the SOAP WSDL. We referred the matter back to the provider of the SOAP Service. – Stefan Jul 06 '23 at 16:38

0 Answers0