سؤال

الإعداد: Windows 7 ، IIS7. أنا أعمل على تطبيق يتم عرضه من خلال خادم IIS المحلي ، وليس خادم الويب المدمج في تصحيح الأخطاء. لذا فإن عنوان URL الخاص بي هو http://localhost/foo/bar.aspx. هنالك لا <customErrors> القسم في الويب الخاص بي ، ولم أغير أي إعدادات في IIS.

في حالة حدوث أي خطأ ، أحصل دائمًا على شاشة الخطأ التالية:

خطأ HTTP 500.19 - خطأ الخادم الداخلي
المسار المادي المطلق "C:\inetpub\custerr"غير مسموح به system.webServer/httpErrors قسم في ملف web.config. استخدم المسار النسبي بدلاً من ذلك.

ها أنا applicationhost.config محتويات:

<httpErrors errorMode="Custom" lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
  <error statusCode="401" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="401.htm" />
  <error statusCode="403" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="403.htm" />
  <error statusCode="404" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="404.htm" />
  <error statusCode="405" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="405.htm" />
  <error statusCode="406" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="406.htm" />
  <error statusCode="412" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="412.htm" />
  <error statusCode="500" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="500.htm" />
  <error statusCode="501" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="501.htm" />
  <error statusCode="502" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="502.htm" />
</httpErrors>

كيف يمكنني التخلص من خطأ التكوين هذا حتى أتمكن من رؤية أخطاء مفصلة؟

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

المحلول

لقد كنت أتعامل مع هذه المشكلة خلال الأيام القليلة الماضية ووجدت الحل. من المحتمل أن يحدد ملف web.config مسارًا مطلقًا لأحد صفحات الخطأ. قد لا يكون هذا هو web.config للتطبيق الذي تختبره. بالنسبة لي ، كان ملف الويب الخاص بالموقع.

  1. إذا وجدت ملف Web.Config المسيء ، فيمكنك إزالة المسار المطلق ويجب إصلاح المشكلة.

  2. حل أسهل بكثير هو تغيير ApplicationHost.Config ملف لتعيين ملف allowAbsolutePathsWhenDelegated خاصية ل true:

    <httpErrors allowAbsolutePathsWhenDelegated="true" errorMode="Custom" 
                lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
    

نصائح أخرى

واجهت نفس المشكلة عندما قمت بتثبيت خدمات شهادة Active Directory على وحدة تحكم المجال. كان كلاهما يستخدم المنفذ 443. أقوم بتغيير واحد لخدمات الشهادات إلى عنوان IP الخادم وترك خادم Exchange غير معروف. التي حلت مشكلتي.

كان لدي نفس القضية في IIS 8.5. كان الإصلاح هو حذف أي إدخالات في ملف web.config (الموجود في الدليل الجذر للموقع) الذي أشار إلى صفحات الخطأ المخصصة. تم إنشاء الإدخالات من قبل النظام عندما حاولت إجراء تغييرات على الصفحات المخصصة.

ما الذي ساعدني في حل هذا الخطأ هو الإعداد allowAbsolutePathsWhenDelegated إلى صحيح.

اذهب إلى IIS> محرر التكوين> في نوع القسم: system.webserver/httperrors وحدد allowAbsolutePathsWhenDelegated ل حقيقي. إعادة ضبط IIS للقياس الجيد.

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