P
So ganz trivial war der Fehler dann doch nicht.
Den SoapContext muss man, je nach dem ob es sich um einen Server (in der MSDN Web Service genannt) oder ob es sich um einen Client handelt, anders setzen.
Zur Kommunikation mit einem Web Service von einem Client aus, muss man einen Proxy erzeugen um dem Client die "Service Methoden" offenzulegen. Das kann man über WSDL verarbeitende Tools erledigen, wird einem Falle der Verwendung von VS.NET aber insofern erleichtert, als dass man eine "Web Referenz" auf einen (vorhandenen) Service setzen oder updaten kann.
Dieser Proxy wird aber per default abgeleitet von System::Web::Services::Protocols::SoapHttpClientProtocol. Will man aber nun die WSE verwenden muss man dies händisch ändern und zwar in Microsoft::Web::Services2::WebServicesClientProtocol.
Nun muss man eine Instanz der Proxy Klasse erezugen, z.B.
Server003::Server003Class *proxServer = new Server003::Server003Class();
und kann darauf den SoapContext für den CLient setzen, allerdings ohne verwendung von "Current" (das darf man nur beim Server/ Web Service benutzen):
//SoapContext setzen
SoapContext *reqC = pCServer->RequestSoapContext;
Und weg isse, die
System.NullReferenceException
, weil im SoapContext plötlich etwas steht. :xmas2: