سؤال

عندما أستضيف "قالب خدمة REST WCF 4" المشروع (من القالب) في IIS Developer Express أحصل على ما يلي:

مخططات المصادقة المحددة IIS "IntegratedWindowSauthentication ، مجهول" ، لكن الربط يدعم فقط مواصفات مخطط المصادقة الواحد بالضبط. مخططات المصادقة صالحة هي Digest أو Teensue على NTLM أو Basic أو Anonymous. قم بتغيير إعدادات IIS بحيث يتم استخدام مخطط مصادقة واحد فقط.

لم أغير أي تكوين بشكل صريح غير الإعداد AutomaticFormatSelectionEnabled إلى خطأ من أجل إعادة JSON:

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    <standardEndpoints>
      <webHttpEndpoint>
            <!--Configure the WCF REST service base address via the global.asax.cs file and the default endpoint 
            via the attributes on the <standardEndpoint> element below-->
        <standardEndpoint name="" 
                          helpEnabled="true" 
                          automaticFormatSelectionEnabled="false"
                          />
      </webHttpEndpoint>
    </standardEndpoints>
  </system.serviceModel>

إذا لم يتم تعيين تكوين نقطة النهاية بشكل صريح ، فكيف سأفعل ذلك لهذا النوع من الخدمة ، من أجل تعيين مخطط المصادقة للخدمة بشكل صريح لتجنب هذه المشكلة مع IIS Developer Express؟

ملاحظة: لدي التجميعات التالية Microsoft.web.dll & microsoft.web.administration.dll في مشاريع خدمة الويب /سلة مهملات مجلد التطبيق كما هو موضح في حلول خدمات WCF هنا على مدونة فريق ISS:http://blogs.iis.net/vaidyg/archive/2010/07/21/wcf-workaround-for-webmatrix-beta.aspx

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

المحلول

ستحتاج إلى تعطيل مخطط المصادقة غير المطلوب ، تخميني Windows Authnetication. لذا:

  1. إطلاق المفكرة
  2. افتح في ملف المفكرة: ٪ userprofile ٪ documents iisexpress8 config applicationhost.config
  3. البحث عن
  4. قم بتغيير السمة الممكّنة من True إلى False
  5. يحفظ

سيؤدي ذلك إلى تعطيل مصادقة Windows لجميع المواقع ، يمكنك بدلاً من ذلك إضافة مسار موقع في أسفل الملف قبل الأخير مباشرةu003C/configuration> خط للموقع المحدد (لك في هذه الحالة) إضافة:

<location path="YourSite" overrideMode="Allow">
    <system.webServer>
        <security>
            <windowsAuthentication enabled="false" />
        </security>
    </system.webServer>
</location>

سيؤدي هذا إلى تعطيل ذلك فقط للموقع المحدد.

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