Frage

Ich habe einen WCF-Dienst gehostet in IIS 5.1 auf meinem Entwicklung XP-Rechner. Der Dienst kann nicht auf SQL Server DB mit integrierten Sicherheit = true verbinden. Der gleiche Service funktioniert gut, wenn in einer Konsolenanwendung gehostet. Ich habe nicht markiert den anonymen Zugriff und kontrolliert die integrierte Windows-Authentifizierung in IIS

Das ist meine Einstellung in 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>

Ich habe versucht, zu SSPI Integrierte Sicherheit zu ändern und Vertrauenswürdige Verbindung = Ja, aber kein Glück. Im Folgenden finden Sie die Config-Einstellungen.

  <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>

und in 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>

Ohne Identitätswechsel in der Code-Einstellung erhalte ich " Der zugrunde liegende Anbieter schlug fehl auf Öffnen " in der Code-Identitätswechsel einstellen und ich " Kann nicht initialisieren SSPI "

 [OperationBehavior(Impersonation = ImpersonationOption.Required)]

Versucht googeln und fand, dass Anwendungspool kann nicht in IIS 5.1 festgelegt werden.

Jeder Vorschlag, das Problem zu beheben wäre sehr geschätzt.

War es hilfreich?

Lösung

das Problem behebt von qualifiziertem SQL Server-Namen in der Verbindungszeichenfolge geben

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top