3

我正在研究 Base WCF Service-Client WCF service-Consumer Base Wcf servcie 模型,如下所示:

在此处输入图像描述

在这个模型中,我创建了一个 Base WCF 服务并创建了 1 个 WCF 服务,即;ClientWCFService 和 1 个 ASMX 服务,即;ClientASMXservice 使用 BaseWCFServiceProxy.cs,Base WCF Service 的 Proxy 类使用 SVCUtil.exe。

ClientWCFService 和 ClientASMXservice 在 StandAlone 环境中运行良好。现在,我使用相同的代理类 BaseWCFServiceProxy.cs 创建了一个使用者控制台应用程序,以使用 BaseWcfService 类访问 ClientWCFService 和 ClientASMXservice。

根据OOP 规则,BaseWcfService 类是 ClientWCFService 和 ClientASMXservice 的基类,我可以使用 Base 服务类构造函数访问这些服务。

服务调用如下:对于 ClientWCFService

 ModelWcfServiceContractClient _client = new ModelWcfServiceContractClient("IModelWcfServiceContract","http://localhost:64242/ClientWCFServiceWcfUsingSVCProxy.svc");

对于 ClientASMX 服务

ModelWcfServiceContractClient _client = new ModelWcfServiceContractClient("IModelWcfServiceContract","http://localhost:64396/ClientASMXServiceWcfUsingSVCProxy.asmx");

消费者控制台应用程序构建良好,但在运行时初始化 ModelWCFServiceContractClient 对象时,它抛出InvalidOperation 异常为:

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

我尝试为每种类型的服务使用不同的端点来解决此问题,但未能成功。

更快的响应将不胜感激。另外请不要仅仅通过清除拼写错误来帮助我,因为这会浪费我的时间来阅读由于清除拼写错误而产生的警报。时间对我来说很关键。。

谢谢

4

1 回答 1

2

试试这个(希望你能关注):

在 Visual Studio 中,选择包含您的 ServiceReference 的项目ModelWcfProxy(生成ModelWcfServiceContractClient代理类的项目)。

从解决方案资源管理器菜单栏中选择“显示所有文件”。

展开服务引用文件夹和生成的服务引用。找到 .svcmap 文件,在下面查找 Reference.cs 文件。

在您生成的界面的顶部应该有一个已System.ServiceModel.ServiceContractAttribute定义的。在属性构造函数中,您应该看到正在设置的 ConfigurationName 属性。此合约配置名称应与 config 中定义的名称或您发送到您的方法的名称匹配:

ModelWcfServiceContractClient _client = new ModelWcfServiceContractClient("IModelWcfServiceContract","http://localhost:64242/ClientWCFServiceWcfUsingSVCProxy.svc");

希望这可以帮助。

于 2012-02-21T14:36:47.113 回答