如何使用现有的内存WSDL来创建WCF服务?

时间:2012-10-04 06:54:42

标签: wcf wsdl

1)我知道当我们想要使用现有的WCF服务时,会在客户端生成WSDL文件。这是因为我们在Visual Studio中使用“添加服务引用...”选项。我不明白的是 - 当我们使用客户端代理调用WCF服务时,在什么时候使用了确切的WSDL文件?

2)我不知道在创建WCF服务的过程中如何使用或连接或附加存在于内存中的WSDL。我的意思是我应该写什么?类似的东西:

Uri mexAddress = new Uri("http://localhost:2240/Service1.svc?wsdl");

或:

Uri mexAddress = new Uri("http://localhost:2240/Service1.svc?" + SomeName.wsdl);

或:

?

提前谢谢。

戈兰

2 个答案:

答案 0 :(得分:1)

  

1)我知道我们希望在客户端生成WSDL文件   使用现有的WCF服务。这是为了我们使用“添加服务”   参考...“Visual Studio中的选项。我不明白的是 - 在   我们在使用客户端代理时使用的确切WSDL文件到底是什么时候   调用WCF服务?

不,wsdl是在服务器端生成的。它是基于XML的文档,描述了一个服务。它指定服务的位置以及服务公开的操作或方法。添加服务引用时,Visual Studio(或svcutil)仅保存此wsdl的副本以生成客户端代理。 wsdl将永远不会在该代之后使用,并且不会嵌入到资源中。您也可以在没有wsdl的情况下创建客户端代理。

  

2)我不知道如何在内存中使用或连接或附加现有内容   WSDL在创建WCF服务的过程中。我的意思是我应该怎么做   写?

不清楚。你什么意思 ?在服务器端,当您激活元数据的展示时,WCF将自动管理WSDL创建(它也是可扩展的)。

答案 1 :(得分:0)

在运行时,客户端不使用WSDL来调用服务。它仅在设计时用于生成客户端代理代码以调用服务。