2010-12-14 5 views
1

J'ai une erreur lors de la mise à jour de référence de service WCF dans Visual Studio 2010:VS 2010 erreur de connexion référence de service WCF https

Il y avait un téléchargement d'erreur 'https://192.16.0.76/MyService.svc'. La demande a été abandonnée: Impossible de créer un canal sécurisé SSL/TLS. Les métadonnées contiennent une référence qui ne peut pas être résolue: 'https://192.16.0.76/MyService.svc'. La requête HTTP était interdite avec le schéma d'authentification client 'Anonyme'. Le serveur distant a renvoyé une erreur: (403) Interdit. Il y a deux semaines, la mise à jour des références fonctionnait correctement et rien n'a été modifié dans le fichier web.config. Maintenant, je ne peux pas mettre à jour la référence de service et ajouter de nouvelles fonctionnalités à l'application Silverlight. J'ai cherché réponse sur Internet et la plupart des gens conseillent de vérifier les certificats sur le PC du développeur. Je n'ai pas canné de certificats sur mon ordinateur et j'ajoute également un certificat ny au magasin de machines local. Peut-être que je devrais changer le certificat par défaut pour Visual Studio mais je ne peux pas trouver comment faire cela.

Voici mon fichier web.config:

<source name="System.ServiceModel" 
     switchValue="Error,Warning" 
     propagateActivity="true"> 
    <listeners> 
     <add type="System.Diagnostics.DefaultTraceListener" 
       name="Default"> 
     <filter type="" /> 
     </add> 
     <add name="ServiceModelTraceListener"> 
     <filter type="" /> 
     </add> 
    </listeners> 
    </source> 

    <source name="System.ServiceModel.MessageLogging" 
    switchValue="Warning, Error"> 
    <listeners> 
     <add type="System.Diagnostics.DefaultTraceListener" name="Default"> 
     <filter type="" /> 
     </add> 
     <add name="ServiceModelMessageLoggingListener"> 
     <filter type="" /> 
     </add> 
    </listeners> 
    </source> 
</sources> 

<sharedListeners> 

    <add initializeData="tracelog.svclog" 
     type="System.Diagnostics.XmlWriterTraceListener, System, 
        Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
     name="ServiceModelTraceListener" traceOutputOptions="Timestamp"> 
    <filter type="" /> 
    </add> 
    <add initializeData="messages.svclog" 
     type="System.Diagnostics.XmlWriterTraceListener, 
        System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
     name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp"> 
    <filter type="" /> 
    </add> 
</sharedListeners> 

<trace autoflush="true" /> 

<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/> 
<httpRuntime executionTimeout="600" /> 

</behavior> 
    </serviceBehaviors> 
</behaviors> 
<bindings> 
    <customBinding> 
    <binding name="MyForm.Web.MyService.customBinding0" 
     receiveTimeout="00:10:00" sendTimeout="00:10:00" 

      openTimeout="00:10:00" closeTimeout="00:10:00"> 
     <binaryMessageEncoding/> 
     <httpsTransport maxReceivedMessageSize="2147483647" /> 
    </binding> 
    </customBinding> 
    <wsHttpBinding> 
    <binding name="CertificateWithTransport" 
      receiveTimeout="00:10:00" sendTimeout="00:10:00" 
      openTimeout="00:10:00" closeTimeout="00:10:00" 
      maxReceivedMessageSize="2147483647"> 
     <security mode="Transport" > 
     <transport clientCredentialType="Certificate" /> 
     </security> 
     <readerQuotas maxDepth="2640000" 
       maxStringContentLength="2000000000" 
       maxArrayLength="2000000000" 
       maxBytesPerRead="2000000000" 
       maxNameTableCharCount="2000000000" /> 
    </binding> 
    </wsHttpBinding> 
</bindings> 
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/> 
<services> 
    <service behaviorConfiguration="ServiceBehavior" name="MyForm.Web.MyService"> 
    <endpoint address="" binding="wsHttpBinding" bindingConfiguration="CertificateWithTransport" 
     contract="MyForm.Web.MyService" /> 
    </service> 
</services> 
<diagnostics > 
    <messageLogging logMalformedMessages="true"    
    logMessagesAtServiceLevel="true" 
    logMessagesAtTransportLevel="true" 
    /> 
</diagnostics> 

Toute aide sera appréciée.

[Upd] Il semble qu'il puisse être provoqué par des problèmes avec le certificat sur mon PC. Comment puis-je choisir le certificat qui sera utilisé pour la connexion https au service Web? J'ai trouvé similaire topics sur internet mais il n'y avait pas de solutions pour cela.

Répondre

-1

En passant par WCF – 2 Way SSL Security using Certificates, pourrait vous aider.

+0

J'ai lu cet article. Il contient des informations sur la configuration de SSL pour WCF. Mais je l'ai déjà configuré. L'application Silverlight n'a aucun problème pour se connecter à WCF mais Visual Studio ne peut pas mettre à jour la référence de service. –

Questions connexes