VB.net和Webservices异常

时间:2013-05-21 06:40:11

标签: .net vb.net web-services visual-studio encoding

我通过VB.NET调用web服务。我已经完成了一个AddWebReference来创建绑定。

当WS调用抛出异常时,我能够将其作为通用异常对象Catch ex As Exception捕获。 但是,我无法弄清楚如何捕获它作为实际抛出的异常类型。

来自我的wsdl

<wsdl:message name="FException">
    <wsdl:part name="fault" type="tns2:FException"/>
</wsdl:message>
<wsdl:message name="MyException">
    <wsdl:part name="fault" type="impl:MyException"/>
</wsdl:message>

<complexType name="FException">
    <sequence>
        <element name="errcode" type="xsd:int"/>
        <element name="errmessage" nillable="true" type="soapenc:string"/>
    </sequence>
</complexType>


<complexType name="MyException">
    <complexContent>
        <extension base="tns2:FException"><sequence/>
        </extension>
    </complexContent>
</complexType>

抛出的实际异常是MyException。但是,AddWebreference似乎没有创建任何名为MyException的类,因此使用

 Catch ex As MyException

给了我

Type 'MyException' is not defined.

我能用Axis在Java中捕获正确的异常。

我在VB.NET中缺少什么?添加WebReference似乎不会生成异常对象,因此我无法使用它们。

1 个答案:

答案 0 :(得分:0)

找出答案。

webservice是一个相当古老的实现,它使用“RPC / Encoded”而不是像“Document / Literal”或“RPC / Literal”这样的更新的编码。 dotnet存根生成器不支持RPC / Encoded。因此问题。