【问题标题】:creating web service proxy and deleting WSDL file issue创建 Web 服务代理和删除 WSDL 文件问题
【发布时间】:2013-02-01 07:15:17
【问题描述】:

我只需要知道创建web服务代理后如果我删除wsdl文件那么创建web服务类相关实例会有什么问题吗?

所以请指导我从VS2010 IDE中删除wsdl文件后我需要做什么,因此调用Web服务没有问题。

我的第一个问题是关于 Web 服务 (ASMX) 文件。所以我的问题仍然相同,但是如果 WCF 服务我需要做些什么。因为创建代理后还会生成 wsdl 文件。如果在这种情况下我也删除了 wsdl 文件,那么我该如何调用 wcf 服务。

请详细说明。

【问题讨论】:

    标签: c# wcf web-services wsdl


    【解决方案1】:

    WSDL 文件描述了您的服务操作。为了生成客户端代理,使用了 WSDL 文件。

    创建客户端代理后,您不再需要 WSDL 文件。事实上,删除或限制对 WSDL 文件的访问是一种很好的做法,在安全性方面也是一种很好的做法。

    因此您将不需要 WSDL 文件,除非您对服务进行更改,例如添加新操作或删除现有操作。在这种情况下,需要重新更新客户端的 WSDL 文件。

    【讨论】:

    • 一个非常重要的问题,当我们使用 asmx Web 服务时,当我们在那里创建 Web 服务实例时,我们可以提及我们的 Web 服务 url 到 url 属性。所以我只需要知道这个 url 属性在 WCF 的情况下可用。
    【解决方案2】:

    当您添加服务引用时,Visual Studio 会在 Service References/<service name>/ 文件夹内创建一个名为 Reference.svcmap 的文件,用于描述您的服务。它包含指向各种元数据源的链接以及您在创建服务参考时使用的配置选项(上下文菜单中的“配置服务参考”)。

    这个Reference.svcmap 是唯一不能删除的文件。当您右键单击您的服务引用并从上下文菜单中选择“更新服务引用”时,Visual Studio 将从其上游源重新下载所有必需的元数据,重新创建客户端代理并更新您的 app.config 文件。

    Service References/<service name> 目录中,客户端代理 Reference.cs 是编译客户端应用程序时唯一实际使用的文件(因此您也不应该删除它,尽管 Visual Studio 会自动为您重新生成它) - 这些文件都不会在运行时使用。

    本文还解释了所有这些文件的含义: http://scottseely.com/2009/01/26/misunderstood-add-service-reference/

    【讨论】:

    • 明确告诉我不应该删除哪个文件。该文件的名称和扩展名是什么。
    • 你在谈论 wcf 或经典 Web 服务 asmx。在 asmx 的情况下,不会生成名为 svcmap 的文件,而是生成 Reference.map。
    • 一个非常重要的问题,当我们使用 asmx Web 服务时,当我们在那里创建 Web 服务实例时,我们可以提及我们的 Web 服务 url 到 url 属性。所以我只需要知道这个 url 属性在 WCF 的情况下可用。
    • 哦,我说的是 WCF - 没有真正用过 asmx
    猜你喜欢
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    相关资源
    最近更新 更多