BUG: “InvalidOperationException” error message occurs when you consume a Web Service with an Out parameter
Symptoms
You can use Visual C# .NET to create a Web Service that has a Web Service method with an Out parameter. The Out parameter may appear before the In parameter or the Ref parameter. You must specify the SoapRpcMethodAttribute to the Web Service method to preserve the order of the parameters. The problem occurs when you subsequently use this Web service that you created in Visual C# .NET in a Visual Basic .NET application. You may receive the following error message when you call the Web Service method.
An unhandled exception of type ‘System.InvalidOperationException’ occurred in system.xml.dll
Additional information: There was an error generating the XML document.
Resolution
If the Web Service method has an Out parameter, and you generate the proxy by using Visual Basic .NET, then the Out parameter is generated as a ByRef parameter. This occurs because Visual Basic .NET does not support Out parameters. The reflection code cannot differentiate between a real ByRef parameter and a ByRef parameter that corresponds to an Out parameter. In the proxy class, the actual call to the Web service is completed by using the Invoke method. In the Invoke method call, the Out parameter is missing. However, the generated serializer expects the parameter. Therefore, you receive the error.

Leave a Reply