【发布时间】:2011-02-11 12:15:49
【问题描述】:
我有一个包含五个服务合同的 WCF 服务库。该库通过 Windows 服务托管。我对 WCF 库的大多数配置(如果不是全部的话)都是声明性的。我在配置代码中唯一要做的就是将实现服务合同的类的类型传递给 ServiceHost。然后,我在 Windows Service OnStart 事件期间对每个服务调用 Open。这是我收到的错误消息:
服务无法启动。 System.InvalidOperationException:服务“[Fubu.Conversion.Service1”的应用程序(非基础设施)端点为零。这可能是因为找不到您的应用程序的配置文件,或者因为在配置文件中找不到与服务名称匹配的服务元素,或者因为在服务元素中没有定义端点。 在 System.ServiceModel.Description.DispatcherBuilder.EnsureThereAreNonMexEndpoints(ServiceDescription 描述) 在 System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription 描述,ServiceHostBase 服务主机) 在 System.ServiceModel.ServiceHostBase.InitializeRuntime() 在 System.ServiceModel.ServiceHostBase.OnBeginOpen() 在 System.ServiceModel.ServiceHostBase.OnOpen(时间跨度超时) 在 System.ServiceModel.Channels.CommunicationObject.Open(时间跨度超时) 在 System.ServiceModel.Channels.CommunicationObject.Open() 在 Fubu.RemotingHost.RemotingHost.StartServ...
protected override void OnStart(string[] args)
{
// Uncomment to debug this properly
//System.Diagnostics.Debugger.Break();
StartService1();
StartService2();
StartService3();
StartService4();
StartService5();
}
上述每一项都只需执行以下操作:
private void StartSecurityService()
{
host = new ServiceHost(typeof(Service1));
host.Open();
}
Service Lib app.config 总结
<services>
<service behaviorConfiguration="DefaultServiceBehavior" name="Fubu.Conversion.Service1">
<endpoint address="" binding="netTcpBinding" bindingConfiguration="TCPBindingConfig"
name="Service1" bindingName="TCPEndPoint" contract="Fubu.Conversion.IService1">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexTcpBinding" bindingConfiguration=""
name="mexSecurity" bindingName="TcpMetaData" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8025/Fubu/Conversion/Service1/" />
</baseAddresses>
</host>
</service>
...
合约设置如下: 命名空间 Fubu.Conversion.Service1 {
[ServiceContract(Namespace = "net.tcp://localhost:8025/Fubu")]
public interface IService1
{
我一直在寻找“高低”的解决方案,但没有任何运气。答案很明显吗?对此的解决方案似乎不是。谢谢
【问题讨论】:
标签: windows windows-services wcf-binding