Nous avons créé un service WCF hébergé en tant que service Windows. Notre service est installé avec notre application sur un ordinateur, et il ne sera jamais accessible à distance à partir d'autres clients. Nous l'avons donc conçu pour utiliser des canaux nommés ... Sur notre ordinateur de développement, il fonctionne parfaitement lorsque nous installons et exécutons notre service et notre application. Cependant, lorsque nous déployons notre application et notre service sur un ordinateur de test et l'exécutons, nous obtenons une exception SecurityNegotiationException, qui est due à un appel que notre application effectue au service lorsqu'elle est lancée. Si je commente cet appel de service, notre application se charge et s'exécute correctement, tant qu'elle n'utilise pas le service. J'ai parcouru Internet pour voir comment résoudre ce problème, mais je n'ai pas pu trouver quoi que ce soit qui traite spécifiquement des tuyaux nommés WCF + Windows Service +. J'apprécierais vraiment votre aide!Déploiement du service WCF dans le service Windows avec des tubes recevant 'System.ServiceModel.Security.SecurityNegotiationException'
Merci,
Mike
EXCEPTIONVersion cadre: v4.0.30319 Description: Le processus a été interrompu en raison d'une exception non gérée. Exception Info: System.ServiceModel.Security.SecurityNegotiationException Stack:
trace de la pile de serveur: à System.ServiceModel.Channels.WindowsStreamSecurityUpgradeProvider.WindowsStreamSecurityUpgradeInitiator.OnInitiateUpgrade (stream Stream, SecurityMessageProperty & remoteSecurity) à System.ServiceModel.Channels .StreamSecurityUpgradeInitiatorBase.InitiateUpgrade (stream stream) à System.ServiceModel.Channels.ConnectionUpgradeHelper.InitiateUpgrade (StreamUpgradeInitiator upgradeInitiator, connexion IConnection &, décodeur ClientFramingDecoder, IDefaultCommunicationTimeouts defaultTimeouts, TimeoutHelper & timeoutHelpe r) à System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.SendPreamble (connexion IConnection, ArraySegment`1 préambule, TimeoutHelper & timeoutHelper) à System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.DuplexConnectionPoolHelper.AcceptPooledConnection (connexion IConnection, TimeoutHelper & timeoutHelper) au système .ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection (timeout TimeSpan) à System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen (TimeSpan timeout) à System.ServiceModel.Channels.CommunicationObject.Open (TimeSpan timeout) à System.ServiceModel.Channels. ServiceChannel.OnOpen (TimeSpan timeout) à System.ServiceModel.Channels.CommunicationObject. Ouvrir (délai d'attente TimeSpan) à System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce (timeout TimeSpan, cascade CallOnceManager) à System.ServiceModel.Channels.ServiceChannel.EnsureOpened (Timeout TimeSpan) à System.ServiceModel.Channels.ServiceChannel. Call (String action, Boolean oneway, opération ProxyOperationRuntime, Object [] ins, Object [] outs, TimeSpan timeout) à System.ServiceModel.Channels.ServiceChannelProxy.InvokeService (IMethodCallMessage methodCall, opération ProxyOperationRuntime) à System.ServiceModel.Channels. ServiceChannelProxy.Invoke (message IMessage) à ClientSaver.MainForm..ctor() à ClientSaver.Program.Main()
====== ============================================= =
L'APPLICATION DU SERVICE.FICHIER DE CONFIGURATION
<system.serviceModel>
<services>
<service behaviorConfiguration="" name="ClientSaver.VssService.VssService">
<endpoint address="Pipe" binding="netNamedPipeBinding"
bindingConfiguration="" contract="ClientSaver.VssService.IVssService" />
<host>
<baseAddresses>
<add baseAddress="net.pipe://localhost/VssService/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
========================================= ==================
RENSEIGNEMENTS WCF === CLIENT dE SON app.Config ==
<bindings>
<netNamedPipeBinding>
<binding name="NetNamedPipeBinding_IVssService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288"
maxBufferSize="65536" maxConnections="10" maxReceivedMessageSize="65536">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="Transport">
<transport protectionLevel="EncryptAndSign" />
</security>
</binding>
</netNamedPipeBinding>
</bindings>
<client>
<endpoint address="net.pipe://localhost/VssService/Pipe" binding="netNamedPipeBinding"
bindingConfiguration="NetNamedPipeBinding_IVssService" contract="VssService.IVssService"
name="NetNamedPipeBinding_IVssService">
<identity>
<servicePrincipalName value="host/DEVPC_W7.aboh.local" />
</identity>
</endpoint>
</client>
<services>
<service name="ClientSaver.VssService.VssService">
<endpoint address="net.pipe://localhost" binding="netNamedPipeBinding"
bindingConfiguration="" contract="ClientSaver.VssService.IVssService" />
<endpoint address="http://localhost/VssService/" binding="basicHttpBinding"
bindingConfiguration="" contract="ClientSaver.VssService.IVssService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="VssServiceBehavior">
<serviceMetadata httpGetEnabled="true" policyVersion="Policy15" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Pouvez-vous s'il vous plaît nous donner le message d'erreur associé et l'exception interne le cas échéant? –
Avez-vous déjà été au plus bas? J'ai le même problème. – KingCronus