如何从现有 WCF 服务创建单个 WSDL 文件?

发布于 2024-10-20 18:20:56 字数 101 浏览 6 评论 0原文

如何从现有 WCF 服务创建单个平面 WSDL 文件(内部没有外部引用)?该 WSDL 将被使用(导入)到仅支持 BasicHttpBinding 的旧编程技术中。请向初学者提出您的答案。

How do I create a single flat WSDL file (with no external references from within) from an existing WCF service? This WSDL will be used (imported) into an older programming technology that only supports BasicHttpBinding. Please address your answer to a beginner.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

莫多说 2024-10-27 18:20:56

您现在可以在 .net 4.5(测试版)中本地执行此操作。有一个选项(?singleWsdl 而不是 ?wsdl)用于告诉服务将所有内容输出到单个 wsdl 文档中。有关新内容的更多信息,请访问:http:// msdn.microsoft.com/en-us/library/dd456789(v=vs.110).aspx

You can now do this natively in .net 4.5 (beta). There is an option (?singleWsdl instead of ?wsdl) for telling the service to output everything in a single wsdl document. More info on the new stuff here: http://msdn.microsoft.com/en-us/library/dd456789(v=vs.110).aspx

今天小雨转甜 2024-10-27 18:20:56

我也必须这样做。我使用了 WSDLExtras 库。这没什么大不了的。

以下是使用它的分步说明:

  1. 此处下载 WCFExtras,解压并在VS中添加对它的引用。

  2. 添加对 Web.config/App.config 的引用,如下所示:

    ;
        <扩展>
            <行为扩展>
                >
            
        
    
    
  3. 将扩展添加到端点行为并将 singleFile 属性设置为 true

    ;
         <行为名称=“singleFileEndpointBehavior”>
             
         
    
    
  4. 将端点行为用于您的服务端点。 p>

    <端点地址=“YourEndPoint/Address”绑定=“YourBinding”behaviorConfiguration=“singleFileEndpointBehavior”contract=“IYourContract”>
    

这对我来说效果很好。您还可以从 WCFExtras 项目页面下载完整示例:ProjectPage

编辑:
为了完整起见:从 .NET 4.5 开始,您可以使用 ''?singleWsdl'' 查询参数,如 Irwins 答案中所述。有关更多详细信息,请参阅他发布的链接。

I had to do this, too. And I used the WSDLExtras library. It's not too big of a deal.

Here is a step by step instruction for using it:

  1. Download the WCFExtras from here, extract it and add a reference to it in VS.

  2. Add a reference to your Web.config/App.config like this:

    <system.serviceModel>
        <extensions>
            <behaviorExtensions>
                <add name="wsdlExtensions" type="WCFExtras.Wsdl.WsdlExtensionsConfig, WCFExtras, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
            </behaviorExtensions>
        </extensions>
    </system.serviceModel>
    
  3. Add the extension to your endpoint behavior and set the singleFile attribute to true

    <endpointBehaviors>
         <behavior name="singleFileEndpointBehavior">
             <wsdlExtensions singleFile="True" />
         </behavior>
    </endpointBehaviors>
    
  4. Use the endpointbehavior for your service-endpoint.

    <endpoint address="YourEndPoint/Address" binding="YourBinding" behaviorConfiguration="singleFileEndpointBehavior" contract="IYourContract">
    

This worked fine for me. You can also download a full example from the WCFExtras project page: ProjectPage

Edit:
For the sake of completeness: You can use the ''?singleWsdl'' query parameter since .NET 4.5 as stated in Irwins answer. See the link he posted for more details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文