【发布时间】:2012-03-11 18:46:10
【问题描述】:
我正在研究基础 WCF 服务 - 客户端 WCF 服务 - 消费者基础 Wcf 服务模型,如下所示:
在这个模型中,我创建了一个 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");
对于客户端ASMX服务
ModelWcfServiceContractClient _client = new ModelWcfServiceContractClient("IModelWcfServiceContract","http://localhost:64396/ClientASMXServiceWcfUsingSVCProxy.asmx");
Consumer Console 应用程序构建良好,但在运行时初始化 ModelWCFServiceContractClient 对象时, 它抛出 InvalidOperation Exception 为:
找不到名为“IModelWcfServiceContract”的端点元素 并在 ServiceModel 客户端中签订合同“IModelWcfServiceContract” 配置部分。这可能是因为没有配置文件 为您的应用程序找到,或者因为没有匹配的端点元素 此名称可以在客户端元素中找到。
我已尝试为每种类型的服务使用不同的端点来解决此问题,但未能成功。
我们将不胜感激。另外请不要仅仅通过清除拼写错误来帮助我,因为这会浪费我的时间来阅读由于清除拼写错误而产生的警报。时间对我来说很重要..
谢谢
【问题讨论】:
-
您可以为客户端发布 web.config system.servicemodel 部分吗?
-
@dtyron 我认为 OP 试图避免使用配置文件。
-
ModelWcfServiceContractClient 生成了吗?可以提供这个类里面的连接代码吗?
-
@dtryon,ModelWcfServiceContractClient 是使用 SVCUtil.exe 工具为 ModelWcfService WCF 服务生成的代理类。我在消费者应用程序中使用这个类来访问两个子集服务(ClientASMX 和 ClientWCf),方法是在 ModelWcfServiceContractClient 构造函数中提供服务的合同名称和 URI。
-
好的,您在生成的输出中看到 .svcmap(或 Reference.cs)文件了吗?
标签: wcf client wcf-binding wcf-endpoint servicecontract