【问题标题】:How do I reference a WSDL file with a relative path?如何引用具有相对路径的 WSDL 文件?
【发布时间】:2012-05-30 19:26:42
【问题描述】:

我在磁盘上有一个 WSDL 文件并作为 Web 参考加载。问题是 Web 引用本身正在我的机器上查找 WSDL(使用绝对路径),这显然不适用于队友的机器。

是否可以让 Web 参考通过相对路径或从资源文件中查找 WSDL? WSDL 适用于我们已修改以添加一些额外字段(根据他们的建议)的第三方服务。

【问题讨论】:

    标签: c# visual-studio-2010 web-services wsdl


    【解决方案1】:

    当您向计算机上的 WSDL 文件添加服务引用时,它会被复制到项目中的“服务引用”文件夹中。此时,您的服务的 API 已确定。有一个创建的“Reference.svcmap”(XML) 保存 WSDL 文件的原始位置。这样您就可以在 API 更改时更新项目中的服务引用。但是,即使没有原始 WSDL 文件,您也可以签入代码,并且您的团队可以毫无问题地使用它。但是,如果您希望他们能够在 API 更改时更新服务,那么您需要将 WSDL 文件实际托管在可公开访问的位置。通常,Web 服务本身提供 WSDL 文件,而您的文件系统中不会有它。如果您计划更新和更改 Web 服务,您应该连接到托管在开发 Web 服务器上的 WSDL。那确实是它所属的地方,而不是本地文件。但是,在有人尝试更新它之前,您的本地文件引用没有理由不能正常工作。如果您的网络服务从不改变,那么您就没有问题。如果它可以更改,则将其托管在某个地方并引用一个真实的 URL。

    我在 Reference.svcmap 文件中调整 XML 以尝试相对路径引用的初始测试没有奏效,但如果您决定确实希望按照您的问题描述的那样工作,这是您尝试的地方.

    【讨论】:

      【解决方案2】:

      我的建议是使用命令行工具 wsdl.exe 或 svcutil.exe 创建一个编程代理来创建 .cs 或 .vb 代理,然后您可以将其添加到解决方案中。

      这允许根本不需要 wsdl 文件。在此处查看有关 .NET 2.0 的更多信息http://msdn.microsoft.com/en-us/library/7h3ystb6(v=vs.80).aspx

      .NET 3.5 或更高版本和 svcutil 看这里:http://msdn.microsoft.com/en-us/library/aa751905.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-03
        • 2010-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-24
        相关资源
        最近更新 更多