2009-05-27 18 views
2

Nous avons un service Windows que nous essayons d'utiliser comme hôte WCF pour une application WPF. Cela fonctionne bien dans le développement, mais quand nous avons essayé de passer à notre environnement de production, nous n'avons eu que des problèmes. De la lecture des messages des autres, nous avons trouvé comment activer la journalisation WCF et cela a été d'une grande aide. Il s'est avéré que nos liaisons de sécurité sur le service et le client ne correspondaient pas. Nous les avons configurés pour utiliser la sécurité Windows mais toujours pas de chance maintenant nous essayons de mettre le mode de sécurité sur 'None' mais ça ne marche toujours pas. Voici la section des liaisons de notre fichier de configuration de service:Erreur WCF: la sécurité de flux est requise à http://www.w3.org/2005/08/addressing/anonymous, mais aucun contexte de sécurité n'a été négocié

<system.serviceModel> 
    <bindings> 
     <netTcpBinding> 
     <binding name="netTcp"> 
      <security mode='None'> 
      </security> 
     </binding> 
     </netTcpBinding > 
    </bindings> 
    <services> 

     <service name="CompanyService"> 
     <endpoint 
      address= "our.url.com/CompanyService" 
      binding="netTcpBinding" 
      contract="CompanyServices.ICompanyService" /> 
     </service> 
    </services> 
    </system.serviceModel> 

Voici la section ServiceModel de notre configuration de l'application client:

<system.serviceModel> 
    <bindings> 
     <netTcpBinding> 
     <binding name="NetTcpBinding_Config" > 
      <security mode="None"> 
      </security> 
     </binding> 

     </netTcpBinding> 
    </bindings> 
    <client> 
     <endpoint address="our.url.com/CompanyService" binding="netTcpBinding" bindingConfiguration="NetTcpBinding_Config" contract="CompanyServiceProxy.ICompanyService" name="NetTcpBinding_ICompanyService" /> 
    </client> 
    </system.serviceModel> 

Si je dois fournir infor supplémentaire s'il vous plaît me dire ce que je dois la fourniture.

Merci

Répondre

0

standard net.tcp liaison utilise les informations d'identification de Windows par défaut et ceux qui ont vraiment besoin client et le service à être dans le même domaine Windows. Est-ce le cas ici? OK, désolé, vous avez mentionné security = None (vos listes n'étaient pas correctement formatées, donc je n'ai vu qu'une fraction de la configuration actuelle).

Je suppose que votre problème est vraiment dans les adresses utilisées:

address= "our.url.com/CompanyService" 

Lorsque vous utilisez la liaison net.tcp, vous devez spécifier que, avant l'adresse, afin de le changer sur le client et le serveur: De plus, ce que je ne comprends pas vraiment, c'est votre titre: il mentionne "streaming" - avez-vous spécifié le mode streaming n'importe où? Dans votre config ou vos contrats de service?

Marc

+0

Désolé, j'ai raté l'adresse que nous avons utilisée lorsque j'ai posté la question. Nous utilisons le formulaire "net.tcp: //our.url.com/Company" dans nos adresses. Pour tenter de faire fonctionner cela, nous mettons l'application client sur le serveur qui héberge le service. Le serveur est dans un domaine et l'utilisateur est un compte de domaine. Une chose que j'ai remarquée quand j'ai fait mon post était le mode securinty dans la configuration du service était entouré de guillemets simples mais le mode de sécurité dans la configuration de l'application était entouré de guillemets doubles. Est-ce que cela pourrait être le problème? –

+1

Nous avons trouvé le problème. Nous ne définissions pas les attributs BindingConfiguration sur les noeuds finaux. Lorsque nous avons ajouté "

+0

C'est le plus souvent un oubli stupide. Content que tu aies trouvé ton problème! –

Questions connexes