1

I need to call an old SOAP web service from a client-size Blazor app.

TS.ThumbserverSoapClient req = new TS.ThumbserverSoapClient(TS.TSSoapClient.EndpointConfiguration.TSSoap12); var imageData = await req.GetThumbnailAsync(1000, 200, "width");

It runs with the error; "Cannot wait on monitors on this runtime."

This appears to relate to Blazor running on a single thread.

You can run it with, or without, the "await" and it's the same error.

Should it really be the case that all old SOAP w/s just need re-writing, or is there a way around this?

matt.whitby
  • 47
  • 10
  • Presumably the problem is an implementation detail of whatever `ThumbserverSoapClient` is. Ultimately SOAP is (usually) working on top of HTTP. So you could certainly construct and consume the XML bodies of these requests yourself, but perhaps it's a good time to reconsider your support of this technology. – Kirk Woll Apr 27 '22 at 20:38
  • Might help to have some details about the SOAP client library and .NET version. This related question might provide some clues: [Blazor WebAssembly Monitor Threading exception](https://stackoverflow.com/questions/63397536/blazor-webassembly-monitor-threading-exception). And there are others in addition to this one. – Yogi Apr 27 '22 at 21:31
  • When you manage to fix the async problem you will get the next one, there are no Sockets in Wasm. Best option is to call WCF from your own API server. – H H Apr 28 '22 at 05:44
  • related: https://stackoverflow.com/q/71758849/60761 – H H Apr 28 '22 at 05:48

0 Answers0