Hosting eines wcf-Service in ein Website-Problem: System.ArgumentException: ServiceHost unterstützt nur Klassen-Service-Typen

7

Ich habe so etwas:

MathServiceLibrary (WCF-Servicebibliothek)

%Vor%

Wenn ich das ausführe, kann ich den WCF Test Client sehen und alles ist in Ordnung.

Nun möchte ich diesen Dienst in IIS hosten, damit ich eine Website erstellen und einen Verweis auf MathServiceLibrary hinzufügen kann.

Ich habe dieses ms.svc

%Vor%

und dieses web.config

%Vor%

Wenn ich mit der rechten Maustaste auf ms.svc view im Browser klicke, bekomme ich folgendes:

  

Beschreibung: Bei der Ausführung der aktuellen Webanforderung ist eine nicht behandelte Ausnahme aufgetreten. Bitte überprüfen Sie die Stack-Trace für mehr   Informationen über den Fehler und wo er im Code entstanden ist.

     

Ausnahmedetails: System.ArgumentException: ServiceHost unterstützt nur Klassenservicetypen.

     

Quellfehler:

     

Während der Ausführung der aktuellen Webanforderung wurde eine nicht behandelte Ausnahme generiert. Informationen zur Herkunft und zum Standort von   Die Ausnahme kann mithilfe der folgenden Ausnahme-Stack-Ablaufverfolgung identifiziert werden.

     

Stapelverfolgung:

     

[ArgumentException: ServiceHost unterstützt nur Klassen-Service-Typen.]
  System.ServiceModel.Description.ServiceDescription.GetService (Typ   serviceType) +12229075
  System.ServiceModel.ServiceHost.CreateDescription (IDictionary'2 & amp;   implementierteVerträge) +55
  System.ServiceModel.ServiceHostBase.InitializeDescription (UriSchemeKeyedCollection   baseAddresses) +154
  System.ServiceModel.ServiceHost.InitializeDescription (Typ serviceType, UriSchemeKeyedCollection baseAddresses) +49   System.ServiceModel.ServiceHost..ctor (Typ serviceType, Uri [] baseAddresses) +151
  System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost (Typ   serviceType, Uri [] baseAddresses) +30
  System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost (Zeichenfolge   constructorString, Uri [] baseAddresses) +420
  System.ServiceModel.HostingManager.CreateService (String normalizedVirtualPath) +1440
  System.ServiceModel.HostingManager.ActivateService (String normalizedVirtualPath) +44
  System.ServiceModel.HostingManager.EnsureServiceAvailable (Zeichenfolge   normalizedVirtualPath) +615

     

[ServiceActivationException: Der Dienst '/MathWebSite/ms.svc' kann aufgrund einer Ausnahme während der Kompilierung nicht aktiviert werden. Das   Ausnahmemeldung ist: ServiceHost unterstützt nur Klassen-Service-Typen ..]
  System.Runtime.AsyncResult.End (IAsyncResult-Ergebnis) +679246
  System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End (IAsyncResult   Ergebnis) +190
  System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous (HttpApplication   Kontext, Zeichenfolge routeServiceVirtualPath, Boolean flowContext, Boolean   awareWFService) +234
  System.ServiceModel.Activation.HttpModule.ProcessRequest (Object sender, EventArgs e) +355
  System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute ()   +148
  System.Web.HttpApplication.ExecuteStep (IExecutionStep-Schritt, Boolean & amp; abgeschlossenSynchron) +75

Ich kann nicht herausfinden, was ich vermisse.

    
gigi 24.01.2012, 14:15
quelle

4 Antworten

13

Ändern Sie Ihre ms.svc wie folgt

%Vor%

Sie müssen den Klassennamen anstelle des Schnittstellennamens angeben

    
Pavan 24.01.2012, 14:22
quelle
3

Ihre .svc-Datei ist falsch. Es verweist auf die Schnittstelle, nicht auf die Implementierung. Ändern Sie es zu diesem: <%@ ServiceHost Language="C#" Debug="true" Service="MathServiceLibrary.MathService" %>

    
AVee 24.01.2012 14:23
quelle
3

Die SVC-Datei muss den Klassennamen anstelle des Schnittstellennamens haben. Eine Beispiel-SVC-Datei hat den folgenden Inhalt:

%Vor%

Ich hoffe, das hilft.

    
Rajesh 24.01.2012 14:25
quelle
3

Der Eintrag in Ihrer SVC-Datei ist falsch:

anstelle von:

%Vor%

müssen Sie haben:

%Vor%

Sie müssen die Service-Implementierungsklasse im Service= -Attribut - NOT des Servicevertrags definieren!

    
marc_s 24.01.2012 14:26
quelle

Tags und Links