2012-03-21 104 views
13

我不断收到不明原因的异常服务'已经为零应用(非基础设施)端点

Service 'EmployeeManagerImplementation.EmployeeManagerService' 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. 

iv'e遇到已经解决了这个问题的其他职位,但似乎没有人有一个确切的 答案,而不是他们的解决方案为我工作。

Service has zero application (non-infrastructure) endpoints

任何方式,这里是我的app.config

<system.serviceModel> 
    <services> 
     <service name="Some.Test.EmployeeManagerService"> 
      <endpoint address="net.tcp://localhost:8080/Service" binding="netTcpBinding" 
       bindingConfiguration="" contract="Contracts.IEmployeeManagerService" /> 
      <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/> 
     </service> 
    </services> 
</system.serviceModel> 

我的合同:

[ServiceContract(Namespace="Some.Test")] 
public interface IEmployeeManagerService 
{ 
    [OperationContract] 
    string Test();  
} 

我的服务:

public class EmployeeManagerService : IEmployeeManagerService 
{ 
    public string Test() 
    { 
     return "test"; 
    } 
} 
在相关岗位人员的广告

为合约提供一个名称空间,并将其用作我的app.config中的服务选项卡中名称的前缀。

也有人建议揭露mex的终点... 我真的不知道这是怎么回事,但我做了任何方法。

所以,为什么会发生这种情况的任何想法? 以及如何真正解决这个问题?

+6

o'k原来它需要得到服务 完全相同的名称为包括命名空间 实施<服务名称=“EmployeeManagerImplementation.EmployeeManagerService”>的name属性 由于@Johann布莱 HTTP ://堆栈溢出。com/questions/5270956/service-x-has-zero-application-endpoints-unless-i-add-an-endpoint-in-code-wh – 2012-03-21 23:34:21

+2

你应该添加这个答案并接受它。 – flayn 2012-09-07 15:12:49

+0

我把一个链接的答案,帮助我... 一样好:) – 2012-09-08 12:25:44

回答

10

从你自己的评论:

将服务的name属性完全相同的名称,包括命名空间

<service name="EmployeeManagerImplementation.EmployeeManagerService">

1

服务的名称应该是相同的实施实现接口即接口的类文件。

namespace WCFDemo 
{ 
    public interface IWorker 
    { 
    } 
} 

,并假设你实现它作为

namespace WCFDemo 
{ 
    public class WorkHere:Iworker 
    { 
    } 
} 

那么服务的名称将是 <service name="WCFDemo.WorkHere">

2

复制从服务到控制台应用程序的app.config其托管服务

如果您已将该服务创建为类库项目,并且您正在使用控制台应用程序来托管它,然后只需复制该应用程序。配置文件从服务到控制台应用程序

+0

为什么你认为app.config没有放在正确的地方? 3年前我问过这个问题。我只是读它,我不明白你是如何得出结论,这是问题。 我的第一个评论描述了我是如何解决它的。 – 2015-07-15 07:22:04

+0

这个解决了我的问题。原因是我分离了服务合同和安装程序。所以我没有意识到我的服务安装程序也需要配置。 Upvoting这个答案。 – Bassist 2016-08-02 05:09:49

0

对于我的问题,我有所有正确设置命名空间。但是我没有做的是为服务本身添加一个basicHttpBinding端点。请参阅this MSDN article,这是第一个XML配置部分的示例。