Question

J'ai un service WCF hébergé dans IIS 5.1 sur ma machine XP de développement. Le service ne peut pas se connecter au serveur sql DB avec sécurité intégrée = true. Le même service fonctionne très bien quand hébergé dans une application de la console. J'ai décoché un accès anonyme et vérifié l'authentification Windows intégrée dans IIS

Ce sont mes paramètres dans web.config

 <connectionStrings>
 <add name="CADISEntities"  connectionString="metadata=res://*/UDI.CADISEntities.csdl|res://*/UDI.CADISEntities.ssdl|res://*/UDI.CADISEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=DBSQLP404;Initial Catalog=CadisCustom;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
 </connectionStrings>

J'ai essayé de changer de sécurité intégrée de SSPI et Trusted Connection = Oui, mais pas de chance. Ci-dessous les paramètres Config.

  <service behaviorConfiguration="CADISBehaviour" name="GlobalInvestors.FIPA.BLL.UDI.CADISSecurities">
    <endpoint binding="basicHttpBinding" bindingConfiguration="CADISBinding"
      contract="GlobalInvestors.FIPA.BLL.UDI.ICADISSecurities" />
  </service>

  <basicHttpBinding>
    <binding name="CADISBinding" closeTimeout="01:30:00" openTimeout="01:30:00"
      receiveTimeout="01:30:00" sendTimeout="01:30:00" maxBufferSize="65536000"
      maxBufferPoolSize="52428800" maxReceivedMessageSize="65536000">
      <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Ntlm" proxyCredentialType="Ntlm" />
      </security>
    </binding>
 </basicHttpBinding>

et client

  <endpoint address="http://ainaost4.amerus.corp.tld/FIPA/BLLHost/CADIS.svc"
    behaviorConfiguration="Behavior" binding="basicHttpBinding"
    bindingConfiguration="BasicHttpBinding_ICADISSecurities" contract="CADISEntities.ICADISSecurities"
    name="BasicHttpBinding_ICADISSecurities">
    <!--<identity>
      <userPrincipalName value="AINAOST4\ASPNET" />
    </identity>-->
  </endpoint>

    <binding name="BasicHttpBinding_ICADISSecurities" closeTimeout="01:30:00"
      openTimeout="01:30:00" receiveTimeout="01:30:00" sendTimeout="01:30:00"
      allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
      maxBufferSize="655360000" maxBufferPoolSize="655360000" maxReceivedMessageSize="655360000"
      messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
      useDefaultWebProxy="true">
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Ntlm" proxyCredentialType="Ntlm"
          realm="" />
        <message clientCredentialType="UserName" algorithmSuite="Default" />
      </security>
    </binding>

Sans réglage Impersonation dans le code que je reçois " Le fournisseur sous-jacent a échoué sur Ouvrir " mise Impersonation dans le code et je reçois " ne peut pas Initialiser SSPI "

 [OperationBehavior(Impersonation = ImpersonationOption.Required)]

J'ai essayé googler et a constaté que pool d'applications ne peut pas être définie dans IIS 5.1.

Toute suggestion de résoudre le problème serait grandement apprécié.

Était-ce utile?

La solution

résolu le problème en donnant le nom du serveur SQL complet dans la chaîne de connexion

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top