8
votes

Hébergement d'un service WCF dans un numéro de site Web: System.ArgumentException: ServiceHost uniquement prend en charge les types de service de classe

J'ai quelque chose comme ça:

MathServicelibrary STRT> (Bibliothèque de services WCF) P>

    <system.serviceModel>
        <services>
            <service behaviorConfiguration="defaultServiceBehavior" name="MathServiceLibrary.MathService">
                <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
                <endpoint address="" binding="wsHttpBinding" contract="MathServiceLibrary.IMathService">
                    <identity>
                        <dns value="localhost"/>
                    </identity>
                </endpoint>
            </service>
        </services>
        <behaviors>
            <serviceBehaviors>
                <behavior name="defaultServiceBehavior">
                    <serviceMetadata httpGetEnabled="true"/>
                    <serviceDebug includeExceptionDetailInFaults="false"/>
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    </system.serviceModel>


0 commentaires

4 Réponses :


15
votes

Changer votre MS.SVC comme ci-dessous

<%@ ServiceHost Language="C#" Debug="true" Service="MathServiceLibrary.MathService" %    > 


0 commentaires

3
votes

Votre fichier .svc est faux. Il fait référence à l'interface, pas à la mise en œuvre. Changez-le à ceci: <% @ ServiceHost Langue = "C #" Débug = "TRUE" Service = "MathServicelibrary.MathService"%>


1 commentaires

J'ai eu ma mise en œuvre sur un autre projet, pas dans la même espace de noms, y a-t-il un problème?



3
votes

Le fichier SVC doit avoir le nom de la classe plutôt que le nom de l'interface. Un exemple de fichier SVC a le contenu ci-dessous:

<%@ ServiceHost Language="C#" Debug="true" Service="SampleService.Service1" CodeBehind="Service1.svc.cs" %>


0 commentaires

3
votes

L'entrée dans votre fichier SVC est incorrecte:

au lieu de: xxx

Vous devez avoir: xxx

Vous devez définir la classe d'implémentation de service dans le service SERVICE = Attribut - pas Le contrat de service! >


0 commentaires