我有一個包含五個服務合同的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
{
我已經看過「高,低」的,沒有任何運氣的解決方案。答案很明顯嗎?似乎沒有解決這個問題的辦法。由於