سؤال

وأنا تكافح بجد مع الحصول على خدمة WCF تعمل على IIS على الخادم لدينا. بعد النشر أنا في نهاية المطاف مع ظهور رسالة خطأ:

إعدادات الأمان لهذه الخدمة تتطلب مصادقة 'مجهول' ولكن لم يتم تمكينه من أجل تطبيق IIS الذي يستضيف هذه الخدمة.

وأريد استخدام مصادقة Windows، وبالتالي لدي وصول مجهول تعطيل. لاحظ أيضا أن هناك aspNetCompatibilityEnabled (إذا كان هذا يجعل أي فرق).

إليك بلدي الملف web.config:

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    <bindings>
        <webHttpBinding>
            <binding name="default">
                <security mode="TransportCredentialOnly">
                    <transport clientCredentialType="Windows" proxyCredentialType="Windows"/>
                </security>
            </binding>
        </webHttpBinding>
    </bindings>
    <behaviors>
        <endpointBehaviors>
            <behavior name="AspNetAjaxBehavior">
                <enableWebScript />
                <webHttp />
            </behavior>
        </endpointBehaviors>
        <serviceBehaviors>
            <behavior name="defaultServiceBehavior">
                <serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" />
                <serviceDebug includeExceptionDetailInFaults="true" />
                <serviceAuthorization principalPermissionMode="UseWindowsGroups" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <services>
        <service name="xxx.Web.Services.RequestService" behaviorConfiguration="defaultServiceBehavior">
            <endpoint behaviorConfiguration="AspNetAjaxBehavior" binding="webHttpBinding"
             contract="xxx.Web.Services.IRequestService" bindingConfiguration="default">
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" name="mex" contract="IMetadataExchange"></endpoint>
        </service>
    </services>
</system.serviceModel>

ولقد بحثت في جميع أنحاء الإنترنت مع أي حظ. تحظى بتقدير كبير أي أدلة.

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

المحلول

وهكذا يبدو أن مسألة شائعة جدا. وهذه النقطة هي لإزالة المكسيك من الارتباطات الخاصة بك:

<endpoint address="mex" binding="mexHttpBinding" name="mex" contract="IMetadataExchange"></endpoint>

وAlternativelly تمكين الوصول المجهول في IIS وفي الملف web.config الخاص بك إجراء تم رفض متأكد من الوصول المجهول.

وهذا الأمل سوف تساعد بعض الروح الأخرى. (كنت 100٪ متأكد من أنني حاولت ذلك مع المكسيك إزالتها: -O)

نصائح أخرى

ومجرد استخدام الارتباطات الخدمة للحصول على المكسيك أيضا.

وهكذا تغيير التكوين الحالي:

<endpoint address="mex" binding="mexHttpBinding" name="mex" contract="IMetadataExchange"></endpoint>

إلى

<endpoint address="mex" binding="webHttpBinding" bindingConfiguration="default" name="mex" contract="IMetadataExchange"></endpoint>

وينبغي أن حل المشكلة

يمكن، وفي بعض الحالات يجب أن يتم تمكين

والمصادقة المجهولة للخدمة ولكن ليس للموقع.

وهكذا تأكد من أن "الجذر" المصادقة موقعك ليس لديها سوى مصادقة Windows تمكين. ثم قم بتوسيع موقع الويب الخاص بك، المجلد حدد "خدمة" وتأكد من أن الخدمة قد مكنت مصادقة Windows و مجهول.

وكان لي بيئة مماثلة حيث عملت هذا، وكان الفرق الوحيد في هذه البيئات مصادقة الخدمة. لم تسبب مشكلة في حالتي يتم اختيار مقدمي (NTLM أو التفاوض) ولكن إعدادات المصادقة لموقع والخدمة.

وعلى الأقل كان لي رسالة خطأ متطابقة مع موقع الويب ماستر MSSQL خدمات البيانات الأساسية والخدمات، وكان هذا هو الحل. لم أحصل على خطأ عند تشغيل فقط الخدمة ولكن الموقع يعمل طيب تقريبا، لم MDS إكسبلورر لا تعمل بسبب إعدادات المصادقة الخدمة كانت خاطئة في البداية. سبب هذه ملكة جمال التكوين قد يكون خطأ في إدارة تكوين MDS عند إنشاء موقع MDS الجديد؟

وحتى في حالتي فإن المشكلة ليست أن تكون ثابتة عن طريق القيام بأي التحرير خاص لملف web.config ولا الملفات ApplicationHost.config، أنا لم أفعل أي تحرير ملفات التكوين. مجرد اختيار إعدادات المصادقة الصحيحة للموقع وانها خدمة في إدارة IIS. أنا لست متأكدا من أن هذا هو الحال هنا، ولكن ربما يستحق أن تجرب؟

وعملت بالنسبة لي عندما كنت إزالة 'مكس' نقطة النهاية وأيضا تعيين clientCredentialType = 'NTLM " كنت استضافة بلدي WCF داخل شير.

نعم، يبدو أنك تحتاج إلى إزالة نقطة النهاية المكسيك تماما. وضع

<serviceMetadata httpGetEnabled="false"/>

وحده لم تنجح. شكرا!

وحل إضافية:

لديك فقط للتأكد من أن اسم الخدمة والعقود صحيحة.

ونأمل أن يساعد بطريقة أو بأخرى.

ويبدو تم إصلاح هذه المسألة ملزمة MEX في. NET 4.0. تغيير نسخة CLR التطبيقات بركة. NET خادمنا في 2،0-4،0 تطهير هذه المسألة.

scroll top