创建Web服务代理并删除WSDL文件问题

时间:2013-02-01 07:15:17

标签: c# wcf web-services wsdl

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

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

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

请详细说明。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

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

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

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

相关问题