0

我对 WCF 服务的引用有疑问。我有两个应用程序:

控制台应用
--Library
----WCF 服务

控制台应用程序和库在同一个解决方案中。由于库中的 WCF 服务,它的 app.config 包含 WCF 服务的信息。

控制台应用程序配置与 WCF 服务无关。控制台应用程序通过库间接调用 WCF 服务。我猜这就是控制台应用程序在其配置中没有 WCF 信息的原因(因为它对 Web 服务一无所知)。控制台应用程序调用库中的静态方法,该方法处理 WCF 调用。

我在上述调用中收到此错误:

在 ServiceModel 客户端配置部分中找不到引用合同“MyServiceReference.IMyService”的默认端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素

主机(控制台应用程序)是否需要库中的 WCF 服务相关信息?如果是这样,为什么VS2010没有添加它。

4

2 回答 2

0

您创建的库(“--Library”,在您的层次结构中)可能向您的 WCF 服务添加了服务引用。(“在图书馆里”没有意义,所以我假设这就是你的意思)。这意味着有关 WCF 服务的大量信息已添加到的 app.config 中。该信息需要在引用库的任何 exe 的 app.config 中,以便库正确访问它引用的 WCF 服务。

于 2012-12-14T04:40:38.523 回答
0

我建议运行 SVCUtil.exe。您可以像这样针对正在运行的服务运行它:

svcutil.exe http://localhost:Port/YourSvcClass/YourSvcMethod /language:c# 

这将做的是在 c# 中构建一个客户端 c#(或 vb)存根类,加上一个 .Config 文件,其中包含您需要连接的确切客户端配置文件......所有好东西。您还可以像这样对您的 WCF dll 运行 svcutil:

svcutil.exe c:\yourfolder\YourService.dll /language:c#

无论您是否使用存根类,.config 文件都将有助于设置客户端。

祝你好运

于 2012-12-14T15:20:28.517 回答