Can't add a SOAP reference to a project generated through SS

Great, that works for now.

One more issue:

There seem to be some inconsistencies in the Soap12WsdlTemplate.cs file.

The SOAP 1.2 spec (as described here) seems to require some of the elements used to be the ones in the soap12 namespace., but in the WSDL template, they’re still using the older soap namespace:

<soap12:binding>
<soap12:operation>
<soap12:body>
<soap12:address>

ServiceStack currently generates this:

<wsdl:binding name="WSHttpBinding_ISyncReply" type="svc:ISyncReply">
	<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
	<wsdl:operation name="CreateOrder">
	  <soap:operation soapAction="http://myschema.example.test/CreateEntity" style="document" />
	  <wsdl:input>
		<soap:body use="literal" />
	  </wsdl:input>
	  <wsdl:output>
		<soap:body use="literal" />
	  </wsdl:output>
	</wsdl:operation>
</wsdl:binding>

<wsdl:service name="SyncReply">
	<wsdl:port name="WSHttpBinding_ISyncReply" binding="svc:WSHttpBinding_ISyncReply">
		<soap:address location="http://example.test/api/soap12" />
	</wsdl:port>
</wsdl:service>

The correct output would be this:

<wsdl:binding name="WSHttpBinding_ISyncReply" type="svc:ISyncReply">
	<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
	<wsdl:operation name="CreateOrder">
	  <soap12:operation soapAction="http://myschema.example.test/CreateEntity" style="document" />
	  <wsdl:input>
		<soap12:body use="literal" />
	  </wsdl:input>
	  <wsdl:output>
		<soap12:body use="literal" />
	  </wsdl:output>
	</wsdl:operation>
</wsdl:binding>

<wsdl:service name="SyncReply">
	<wsdl:port name="WSHttpBinding_ISyncReply" binding="svc:WSHttpBinding_ISyncReply">
		<soap12:address location="http://example.test/api/soap12" />
	</wsdl:port>
</wsdl:service>

Some SOAP validators will accept the current output, but some complain that it’s missing certain elements.

SOAP is still somewhat confusing to me, but our client requires it :confounded: