IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Communication Foundation .NET Discussion :

Service WCF introuvable sur un serveur IIS 7


Sujet :

Windows Communication Foundation .NET

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Service WCF introuvable sur un serveur IIS 7
    Bonjour à tous,

    j'ai codé un projet Silverlight utilisant WCF et ça marche très bien en compilant depuis VS, or dès que je teste sous un serveur local IIS, ça ne fonctionne plus, ou plutôt uniquement le service WCF ne fonctionne plus.

    Voici ce que ça m'affiche lorsque j'essaie d'accéder directement au service WCF :
    Erreur du serveur dans l'application '/'.
    --------------------------------------------------------------------------------

    Le type « SilverlightAndWCF.Web.ServiceHelloWorld » fourni en tant que valeur de l’attribut Service dans la directive ServiceHost est introuvable.
    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

    Détails de l'exception: System.InvalidOperationException: Le type « SilverlightAndWCF.Web.ServiceHelloWorld » fourni en tant que valeur de l’attribut Service dans la directive ServiceHost est introuvable.

    Erreur source:

    Une exception non gérée s'est produite lors de l'exécution de la demande Web actuelle. Les informations relatives à l'origine et l'emplacement de l'exception peuvent être identifiées en utilisant la trace de la pile d'exception ci-dessous.

    Trace de la pile:


    [InvalidOperationException: Le type « SilverlightAndWCF.Web.ServiceHelloWorld » fourni en tant que valeur de l’attribut Service dans la directive ServiceHost est introuvable.]
    System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses) +6733063
    System.ServiceModel.HostingManager.CreateService(String normalizedVirtualPath) +604
    System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPath) +46
    System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) +654

    [ServiceActivationException: Le service « /test/ServiceHelloWorld.svc » ne peut pas être activé en raison d’une exception lors de la compilation. Le message de l’exception est : Le type « SilverlightAndWCF.Web.ServiceHelloWorld » fourni en tant que valeur de l’attribut Service dans la directive ServiceHost est introuvable..]
    System.ServiceModel.AsyncResult.End(IAsyncResult result) +15700960
    System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +15623609
    System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication context, Boolean flowContext) +265
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +599
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +171
    Honnêtement, j'ai un peu épuré tous les liens intéressants que j'ai trouvé, et pas moyen de trouver une solution.
    La trace de la pile me fait penser à une erreur au moment d'instancier mon service WCF, notamment quand je vois le mot "Async", mais pourtant je n'ai pas d'erreur en compilant directement dans VS.

    J'ai suivi le WebCast de David Rousset sur la mise en place d'un service WCF pour info (lien : http://msdn.microsoft.com/fr-fr/silv.../ee441174.aspx).

    Si quelqu'un dispose de la solution...
    A noter que cela vient peut-être de la configuration du serveur IIS.

    Merci.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2005
    Messages : 66
    Points : 46
    Points
    46
    Par défaut
    Je pense que ton fichier de config contient une erreur.

    Peux tu le poster ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bien sûr.

    Voici le fichier ClientConfig :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <configuration>
        <system.serviceModel>
            <bindings>
                <customBinding>
                    <binding name="CustomBinding_ServiceHelloWorld">
                        <binaryMessageEncoding />
                        <httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647">
                            <extendedProtectionPolicy policyEnforcement="Never" />
                        </httpTransport>
                    </binding>
                </customBinding>
            </bindings>
            <client>
                <endpoint address="http://localhost:54219/ServiceHelloWorld.svc"
                    binding="customBinding" bindingConfiguration="CustomBinding_ServiceHelloWorld"
                    contract="ReferenceServiceHelloWorld.ServiceHelloWorld" name="CustomBinding_ServiceHelloWorld" />
            </client>
        </system.serviceModel>
    </configuration>
    et le fichier Web.config :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    <?xml version="1.0"?>
    <configuration>
    	<configSections>
    		<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    			<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    				<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    				<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    					<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
    					<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    					<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    					<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    				</sectionGroup>
    			</sectionGroup>
    		</sectionGroup>
    	</configSections>
    	<appSettings/>
    	<connectionStrings/>
    	<system.web>
    		<!-- 
                Définissez compilation debug="true" pour insérer des symboles 
                de débogage dans la page compilée. Comme ceci 
                affecte les performances, définissez cette valeur à true uniquement 
                lors du développement.
            -->
    		<compilation debug="true">
    			<assemblies>
    				<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    				<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    				<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    				<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    			</assemblies>
    		</compilation>
    		<!--
                La section <authentication> permet la configuration 
                du mode d'authentification de sécurité utilisé par 
                ASP.NET pour identifier un utilisateur entrant. 
            -->
    		<!-- <authentication mode="Windows"/> -->
    		<!--
                La section <customErrors> permet de configurer 
                les actions à exécuter si/quand une erreur non gérée se produit 
                lors de l'exécution d'une demande. Plus précisément, 
                elle permet aux développeurs de configurer les pages d'erreur html 
                pour qu'elles s'affichent à la place d'une trace de la pile d'erreur.
     
            <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
                <error statusCode="403" redirect="NoAccess.htm" />
                <error statusCode="404" redirect="FileNotFound.htm" />
            </customErrors>
            -->
    		<pages>
    			<controls>
    				<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    				<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			</controls>
    		</pages>
    		<httpHandlers>
    			<remove verb="*" path="*.asmx"/>
    			<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
    		</httpHandlers>
    		<httpModules>
    			<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    		</httpModules>
    	</system.web>
    	<system.codedom>
    		<compilers>
    			<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    				<providerOption name="CompilerVersion" value="v3.5"/>
    				<providerOption name="WarnAsError" value="false"/>
    			</compiler>
    		</compilers>
    	</system.codedom>
    	<!-- 
            La section system.webServer est requise pour exécuter ASP.NET AJAX sur Internet
            Information Services 7.0.  Elle n'est pas nécessaire pour les versions précédentes d'IIS.
        -->
    	<system.webServer>
    		<validation validateIntegratedModeConfiguration="false"/>
    		<modules>
    			<remove name="ScriptModule"/>
    			<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    		</modules>
    		<handlers>
    			<remove name="WebServiceHandlerFactory-Integrated"/>
    			<remove name="ScriptHandlerFactory"/>
    			<remove name="ScriptHandlerFactoryAppServices"/>
    			<remove name="ScriptResource"/>
    			<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    		</handlers>
    	</system.webServer>
    	<runtime>
    		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    			<dependentAssembly>
    				<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
    				<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
    			</dependentAssembly>
    			<dependentAssembly>
    				<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
    				<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
    			</dependentAssembly>
    		</assemblyBinding>
    	</runtime>
    	<system.serviceModel>
    		<behaviors>
    			<serviceBehaviors>
    				<behavior name="SilverlightAndWCF.Web.ServiceHelloWorldBehavior">
    					<serviceMetadata httpGetEnabled="true"/>
    					<serviceDebug includeExceptionDetailInFaults="false"/>
    				</behavior>
    			</serviceBehaviors>
    		</behaviors>
    		<bindings>
    			<customBinding>
    				<binding name="customBinding0">
    					<binaryMessageEncoding/>
    					<httpTransport>
    						<extendedProtectionPolicy policyEnforcement="Never"/>
    					</httpTransport>
    				</binding>
    			</customBinding>
    		</bindings>
    		<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
    		<services>
    			<service behaviorConfiguration="SilverlightAndWCF.Web.ServiceHelloWorldBehavior" name="SilverlightAndWCF.Web.ServiceHelloWorld">
    				<endpoint address="" binding="customBinding" bindingConfiguration="customBinding0" contract="SilverlightAndWCF.Web.ServiceHelloWorld"/>
    				<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    			</service>
    		</services>
    	</system.serviceModel>
    </configuration>

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2005
    Messages : 66
    Points : 46
    Points
    46
    Par défaut
    Déja tu es en local et pas sous Visual Studio

    http://localhost:54219/ServiceHelloWorld.svc
    devrait être
    http://localhost:54219/ServiceHelloWorld.svc

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2005
    Messages : 66
    Points : 46
    Points
    46
    Par défaut
    Ton contrat et ton service on le meme nom. Normal ?

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Heu... Il me manque des notions là je crois, c'est quoi la différence entre contrat et service ?

    EDIT : Après recherche, il est effectivement normal qu'ils aient le même nom, puisque c'est ce qui permet de les lier.

    Je n'ai touché à rien dans ce fichier de config (ClientConfig), donc je ne sais pas si c'est normal que le contrat et le service aient le même nom.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Je vois beaucoup de monde qui disent qu'il faut utiliser le basicHttpBinding, mais dans la version 3 de Silverlight, j'ai l'impression que ce n'est plus le cas.
    Ca aurait aussi pu être une source d'erreur...

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Il n'y a pas quelqu'un ayant déjà fait fonctionner un Service WCF en local qui pourrait me lister les démarches à suivre ?

    Mon problème est toujours là...

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    J'ai enfin résolu mon problème, il suffisait en fait de créer un nouveau site web dans mon serveur iis, au lieu de créer un répertoire virtuel...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pb de Thread sur un serveur IIS
    Par Catsloveuse dans le forum ASP.NET
    Réponses: 7
    Dernier message: 30/06/2010, 10h09
  2. [Silverlight + WCF] déploiement sur un serveur d'intégration
    Par Maximil ian dans le forum Silverlight
    Réponses: 2
    Dernier message: 26/05/2009, 10h24
  3. JAR introuvable sur mon serveur : problème de signature ?
    Par finety dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 16/02/2009, 09h51
  4. ASP ne tourne pas sur mon serveur IIS
    Par Germain123 dans le forum ASP
    Réponses: 3
    Dernier message: 08/09/2005, 21h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo