WCF服务启动错误 - 服务没有应用程序端点

时间:2013-05-17 09:37:57

标签: c# visual-studio-2010 wcf

我正在尝试启动Windows服务,但是我收到以下错误:

  

无法启动服务。 System.InvalidOperationException:服务   'LazyPCAndroiderSvc.LazyPCController'零应用   (非基础设施)端点。这可能是因为没有配置   找到了您的应用程序的文件,或者因为没有服务元素   匹配服务名称可以在配置文件中找到,或者   因为没有在服务元素中定义端点。

我已经使用WCF测试程序测试了该服务,它没有任何问题。只有当我尝试将其作为Windows服务运行时,才会导致上述错误。

这是来自wcf服务的app.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <!-- This section is optional with the new configuration model
           introduced in .NET Framework 4. -->
      <service name="LazyPCAndroiderSvc.LazyPCController"
               behaviorConfiguration="LazyPCControllerBehavior">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8750/LazyPCAndroiderSvc/LazyPCController/"/>
          </baseAddresses>
        </host>

        <endpoint address=""
                  binding="wsHttpBinding"
                  contract="LazyPCAndroiderSvc.ILazyPCController" />

        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="LazyPCControllerBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

我已经确认名称完全匹配(包括命名空间)。

这是我的WindowsService代码:

namespace LazyPCAndroiderWinSvc
{
    public partial class Service : ServiceBase
    {
        ServiceHost sHost;
        public Service()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            sHost = new ServiceHost(typeof(LazyPCAndroiderSvc.LazyPCController));
            sHost.Open();
        }

        protected override void OnStop()
        {
            sHost.Close();
        }
    }
}

这似乎是一个微不足道的问题,但我找不到原因。

1 个答案:

答案 0 :(得分:2)

服务可能无法从LazyPCAndroiderSvc.dll.config自动读取 - 将这些配置放在主exe的App.config中