【问题标题】:Visual Studio 2008 not generating Web Service Reference.cs proxy class?Visual Studio 2008 不生成 Web 服务 Reference.cs 代理类?
【发布时间】:2009-04-30 17:14:24
【问题描述】:

我刚刚将一个项目从 Visual Studio 2005 格式移植到 Visual Studio 2008。这个项目大量使用了消费网络服务。

我们为 Visual Studio 生成的代理类 (Reference.cs) 使用我们自己的自定义父类。

我使用 Visual Studio 2008 添加了一个新的 Web 引用,它没有生成代理类,只是一个 reference.map 文件。看来它可能是即时构建这些的。这不符合我的需要,因为我需要修改代码以适应我们的框架。

注意,这是 Web 引用,而不是服务引用。

有谁知道让 VS2k8 像 2k5 一样工作的方法吗?

【问题讨论】:

    标签: visual-studio-2008 web-services soap wsdl


    【解决方案1】:

    也许你应该使用svcutil.exewsdl.exe 来生成代理类文件。

    【讨论】:

    • svcutil 生成 .net 3.0 和更新样式的代理。我仍然需要 wsdl.exe 生成的旧 2.0 样式。
    • 我不知道,这就是我问的原因。你的帖子中没有任何地方表明你有。由于您显然已经尝试过 wsdl,也许您可​​以编辑您的问题以包含有关 wsdl 为何不起作用的详细信息。
    【解决方案2】:

    经过一番折腾,我在网上找到了这个post

    原来提供的 WSDL 有一个类似的 sn-p:

    <wsdl:message name="someMessageRequest">
        <wsdl:part name="parameters" element="ns0:someMessageRequest"/>
    </wsdl:message>
    <wsdl:message name="someMessageResponse">
        <wsdl:part name="parameters" element="ns0:someMessageResponse"/>
    </wsdl:message>
    
    ... SNIP ...
    
    <soap:operation style="document" soapAction="someMessage"/>
    <wsdl:input>
         <soap:body use="literal" parts="parameters"/>
    </wsdl:input>
    <wsdl:output>
         <soap:body use="literal" parts="parameters"/>
    </wsdl:output>
    

    因为它对请求和响应参数使用相同的名称,所以 wsdl.exe 无法解析它并死掉。

    我的解决方法:

    <wsdl:message name="someMessageRequest">
        <wsdl:part name="parametersRequest" element="ns0:someMessageRequest"/>
    </wsdl:message>
    <wsdl:message name="someMessageResponse">
        <wsdl:part name="parametersResponse" element="ns0:someMessageResponse"/>
    </wsdl:message>
    
    ... SNIP ...
    
    <soap:operation style="document" soapAction="someMessage"/>
    <wsdl:input>
         <soap:body use="literal" parts="parametersRequest"/>
    </wsdl:input>
    <wsdl:output>
         <soap:body use="literal" parts="parametersResponse"/>
    </wsdl:output>
    

    现在代理已生成。

    SoA 的部分乐趣在于,您永远不能相信提供给您工作的 WSDL :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多