WCF网络服务-多个服务[英] WCF Web Service - Multiple Services

问题描述

我正在开发 WCF Web 服务.我希望能够在我的本地机器上使用它(出于调试目的,并将其部署到两个安全的网站.我提出了以下服务模型配置:

<system.serviceModel><行为><serviceBehaviors><行为 name="StdBehavior"><serviceMetadata httpGetEnabled="true"/><serviceDebug includeExceptionDetailInFaults="true"/></behavior></serviceBehaviors></behaviors><绑定><basicHttpBinding ><绑定 name="secureBind"><安全 模式="Transport"><transport clientCredentialType="Certificate" /></security></binding></basicHttpBinding></bindings><服务><服务 behaviorConfiguration="StdBehavior" name="LocalSvc"><端点 合约="A.ICrisSvc"                       name="localEndpoint"                       绑定="wsHttpBinding"                       地址=""                       /><端点 合约="IMetadataExchange"                       name="mexEndpoint"                       绑定="mexHttpBinding"                       地址="mex"                       /></service><服务 behaviorConfiguration="StdBehavior" name="DevSvc"><端点 合约="A.ICrisSvc"                       name="devEndpoint"                       绑定="basicHttpBinding"                       bindingConfiguration="secureBind"                       地址="https://blah.mil/blah/CrisSvc"                       /></service><服务 behaviorConfiguration="StdBehavior" name="ProductionSvc"><端点 合约="A.ICrisSvc"                       name="prodEndpoint"                      绑定="basicHttpBinding"                       bindingConfiguration="secureBind"                        地址="https://blah2.mil/blah2/CrisSvc"                       /></service></services></system.serviceModel>


当我尝试向我的桌面应用程序添加服务引用时,我收到以下错误:

Service ''A.CrisSvc'' has zero application (non-infrastructure) endpoints. This might be because no configuration file was found for your application, or because no service element matching the service name could be found in the configuration file, or because no endpoints were defined in the service element.

在我看来,我在那里拥有所有需要的东西.如果我删除这两个 https 服务,我可以添加引用.我做错了什么?

推荐答案

您可以尝试在您的服务名称中添加命名空间(如果有的话)吗?

<服务 行为配置="StdBehavior" 名称="Namespace.LocalSvc"></service><服务 行为配置="StdBehavior" name="Namespace.DevSvc"></service><服务 行为配置="StdBehavior" name="Namespace.ProductionSvc"></service>

我让它工作了,但我不知道为什么.我最初是这样做的:

public class CrisSvc : ICrisSvc{//网络方法在这里}public class LocalSvc : CrisSvc{//空类}public class DevSvc : CrisSvc{//空类}public class ProdSvc : CrisSvc{//空类}


错误是针对基类的,所以我想也许每个类都需要一个端点,即使它没有直接使用,所以我将配置文件中的 LocalSvc 引用更改为 CrisSvc,我能够成功添加服务引用.请注意,这有点颠覆了我关于每个服务都需要端点的理论.如果有人能澄清这里发生了什么,我将不胜感激.

本文地址:https://www.itbaoku.cn/post/1394934.html