WCF المستضافة في IIS ، مشكلة الاتصال بقاعدة البيانات مع الأمان المتكامل

StackOverflow https://stackoverflow.com/questions/3771455

سؤال

لدي خدمة WCF مستضافة في IIS 5.1 على جهاز تطوير XP الخاص بي. لا يمكن للخدمة الاتصال بـ SQL Server DB مع أمان متكامل = صحيح. تعمل نفس الخدمة بشكل جيد عند استضافتها في تطبيق وحدة التحكم. لقد لم يتم التحقق من الوصول المجهول وفحص مصادقة Windows المتكاملة في IIS

هذه هي الإعداد الخاص بي في 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>

لقد حاولت التغيير إلى الأمان المتكامل إلى SSPI والاتصال الموثوق به = نعم ، لكن لا حظ. فيما يلي إعدادات التكوين.

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

وفي العميل

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

دون تعيين انتحال شخصية في الكود الذي أحصل عليه "فشل الموفر الأساسي على فتح"تعيين انتحال شخصية في الكود وأحصل عليه"لا يمكن تهيئة SSPI"

 [OperationBehavior(Impersonation = ImpersonationOption.Required)]

حاول googling ووجد أنه لا يمكن تعيين تجمع التطبيقات في IIS 5.1.

أي اقتراح لإصلاح القضية سيكون موضع تقدير كبير.

هل كانت مفيدة؟

المحلول

إصلاح المشكلة من خلال إعطاء اسم خادم SQL مؤهل بالكامل في سلسلة الاتصال

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top