2016-11-07 6 views
0

Während ich das Tutorial in der Programmierung von Azure Service Fabric über die Erstellung eines WcfCommunicationClient des Taschenrechner-Dienstes folgte, stolperte ich über ein Problem, auf das ich die Antwort nicht finden kann.kann Service-Fabric-Dienst nicht starten

Der Code ist etwa die gleiche wie in dem Buch und den Dienst (WCF) wie folgt erstellt:

protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners() 
{ 
    return new[] 
    { 
    new ServiceInstanceListener(initParams => new WcfCommunicationListener<ICalculatorService>(initParams, this, WcfUtility.CreateTcpListenerBinding(), "ServiceEndpoint")) 
    }; 
} 

Wenn der Dienst zum ersten Mal aufgerufen wird, hängt der Ruf für immer und den Service Stoff-Explorer + Stacktrace gibt die folgende Fehlermeldung:

Ungesund Ereignis: SourceId = 'System.RA', Eigenschaft = 'ReplicaOpenStatus', HealthState = 'Warnung', ConsiderWarningAsError = false. Replica hatte mehrere Fehler während des Öffnens. Error = System.InvalidOperationException (-2146233079) Poging om contracttype voor ICalculatorService te ist der Typ, den Sie für den ServiceContract en neemt ook geen ServiceContract over. bij System.ServiceModel.Description.ServiceReflector.GetContractTypeAndAttribute (Typ Interface, Servicecontract & contractAttribute) bij System.ServiceModel.Description.TypeLoader.LoadContractDescriptionHelper (Typ contractType, Typ Servicetype, Object serviceImplementation) bij System.ServiceModel.Description. ContractDescription.GetContract (Typ contractType) bij Microsoft.ServiceFabric.Services.Communication.Wcf.Runtime.WcfCommunicationListener 1.CreateServiceEndpoint(Type contractType, Binding binding, EndpointAddress address) bij Microsoft.ServiceFabric.Services.Communication.Wcf.Runtime.WcfCommunicationListener 1..ctor (serviceContext serviceContext, TServiceContract wcfServiceObject, Bindung listenerBinding, EndpointAddress Adresse, String endpointResourceName) b ij Microsoft.ServiceFabric.Services.Communication.Wcf.Runtime.WcfCommunicationListener`1..ctor (ServiceContext serviceContext, TServiceContract wcfServiceObject, Binding listenerBinding, String endpointResourceName) bij CalculatorService.CalculatorService.b__3_0 (StatelessServiceContext initParams) in C: \ Users \ servel \ Dokumente Visual Studio \ 2015 \ Projects \ CalculatorApplication \ CalculatorService \ CalculatorService.cs: REGEL 45 bij Microsoft.ServiceFabric.Services.Runtime.StatelessServiceInstanceAdapter.d__10.MoveNext() bij System.Runtime.CompilerServices .TaskAwaiter.ThrowForNonSuccess (Task Aufgabe) bij System.Runtime. CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Aufgabe Aufgabe) bij Microsoft.ServiceFabric.Services.Runtime.StatelessServiceInstanceAdapter.d__0.MoveNext()

Anscheinend ist der Dienst kann nicht gestartet werden. Also, was zu tun, um das zu beheben?

Antwort

2

Stellen Sie sicher, dass Ihr Dienst eine Schnittstelle mit den WCF-Attributen ServiceContract und OperationContract implementiert. Wie dieses Beispiel here.

+0

hahaha mit all den neuen Informationen habe ich vergessen, [ServiceContract] zur Schnittstelle hinzuzufügen. Vielen Dank! – Laurijssen