我有一个包含五个服务合同的WCF服务库。该库通过Windows服务托管。大部分(如果不是全部)WCF库的配置都是声明式的。我在配置代码中唯一做的事情是将实现服务合约的类的类型传递给ServiceHost。然后,我在Windows Service OnStart事件期间对每个服务调用Open。以下是错误消息我得到:通过Windows服务托管WCF服务库得到System.InvalidOperationException:尝试启动WCF服务
服务无法启动。 System.InvalidOperationException:服务'[Fubu.Conversion.Service1'没有应用程序(非基础设施)端点。这可能是因为没有为您的应用程序找到配置文件,或者因为在配置文件中找不到匹配服务名称的服务元素,或者因为服务元素中没有定义端点。 在System.ServiceModel.Description.DispatcherBuilder.EnsureThereAreNonMexEndpoints(ServiceDescription介绍) 在System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription描述,ServiceHostBase的ServiceHost) 在System.ServiceModel.ServiceHostBase.InitializeRuntime() 在System.ServiceModel .ServiceHostBase.OnBeginOpen() 在System.ServiceModel.ServiceHostBase.OnOpen(时间跨度超时) 在System.ServiceModel.Channels.CommunicationObject.Open(时间跨度超时) 在System.ServiceModel.Channels.CommunicationObject.Open() 在福布.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();
}
服务库app.congfig总结
<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
{
我已经看过“高,低”的,没有任何运气的解决方案。答案很明显吗?似乎没有解决这个问题的办法。由于