تصحيح: "تم رفض الوصول" ظهور رسالة خطأ عند محاولة الوصول إلى "خدمة الفهرسة" من ASP.NET مع تمكين الانتحال

الأعراض

عند البحث مقابل "خادم الفهرس" من خلال صفحة ASP.NET، قد تتلقى رسالة الخطأ التالية:

تم رفض الوصول. الوصف: حدث استثناء لم تتم معالجته أثناء تنفيذ طلب ويب الحالي. الرجاء مراجعة تتبع المكدس لمزيد من المعلومات حول الخطأ ومكان حدوثه في التعليمات البرمجية.

تفاصيل الاستثناء: System.Data.OleDb.OleDbException: تم رفض الوصول.
يتم ملاحظة هذا السلوك فقط إذا قمت بتمكين الانتحال لتطبيق ويب ASP.NET، وفي حالة حساب ASPNET سياق الأمان الذي يتم تشغيل عملية عامل ASP.NET (Aspnet_wp.exe).

الحل

معلومات حزمة الخدمة

لحل هذه المشكلة، يجب الحصول على أحدث حزمة خدمة لنظام التشغيل Microsoft Windows 2000. لمزيد من المعلومات، انقر فوق رقم المقالة التالية لعرضها في "قاعدة معارف Microsoft":
260910 كيفية الحصول على أحدث حزمة خدمة Windows 2000

الحل البديل

للتغلب على هذه المشكلة، استخدم إحدى الطرق التالية:

  • تعطيل الانتحال لتطبيق ويب ASP.NET كاملة. هذا هو الإعداد الافتراضي.
  • تعطيل الانتحال فقط لصفحة aspx معينة يقوم "خادم فهرس" البحث. للقيام بذلك، إضافة علامة < موقع > إلى ملف Web.config كما يلي:
    <location path="filename.aspx"><system.web>
    <identity impersonate="false" />
    </system.web>
    </location>

إذا لم تكن هذه الحلول مقبولة لك، يمكنك تغيير سياق الأمان التي تعمل ضمنها معالجة عامل ASP.NET إلى حساب النظام. ومع ذلك، لا تنصح Microsoft تعيين سياق الأمان لمعالجة عامل ASP.NET إلى حساب النظام لحساب نظام حساب مسؤول امتيازات عالية المستوى على كمبيوتر خادم الويب. استخدم هذا الحل فقط إذا كان أي من الحلول الأخرى مقبولة.

لتغيير سياق الأمان الذي معالجة عامل ASP.NET تشغيل وتعيين سمة اسم المستخدم نظاممجموعة ثم سمة كلمة مرور إلى "الإنشاء التلقائي" في قسم < processModel > ملف Machine.config. الملف Machine.config الموجود في المجلد \Microsoft.Net\Framework\v1.0.3705\Config C:\دليل Windows.

الحالة

Microsoft قد أقرت أنها مشكلة في منتجات Microsoft المسردة في قسم "تنطبق على". تم تصحيح هذا الخطأ في ASP.NET (المضمنة مع.NET Framework) 1.1.
أقرت Microsoft أن هذه مشكلة في نظام التشغيل Microsoft Windows 2000.
تم تصحيح هذه المشكلة أولاً في Microsoft Windows 2000 Service Pack 4.

مزيد من المعلومات

خطوات إعادة إنشاء المشكلة

  1. Microsoft Visual Studio.NET.بدء تشغيل
  2. إنشاء تطبيق ويب ل ASP.NET.
  3. أضف التعليمات البرمجية التالية بتنسيق HTML لصفحة.aspx:
    <%@ Page language="c#" %><%
    System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection("provider=msidxs;");

    conn.Open();

    string Sql = "Select DocTitle, vpath, characterization, rank from Scope(' DEEP TRAVERSAL OF \"C:\\\" ') where FREETEXT(' \"ticket\" ') order by rank desc";

    System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(Sql, conn);

    System.Data.DataSet ds = new System.Data.DataSet();

    da.Fill(ds, "SearchResults");
    Response.Write("Search Results: <br>");
    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)

    {

    Response.Write("<br>" + ds.Tables[0].Rows[i]["vpath"].ToString());

    }

    %>

  4. تعديل ملف Web.config لتمكين الانتحال كما يلي:
    <identity impersonate="true" />
  5. تأكد من أن حساب ASPNET على سياق الأمان الذي يتم تشغيل Aspnet_wp.exe العملية المنفذة. للقيام بذلك، تعيين سمة اسم المستخدم إلى الجهازثم قم بتعيين سمة كلمة مرور إلى "الإنشاء التلقائي" في قسم < processModel > ملف Machine.config.

    ملاحظة: بشكل افتراضي، يتم تعيين عملية عامل ASP.NET لتشغيل ضمن سياق الأمان لحساب ASPNET مقيدة.
  6. بدء تشغيل "خدمة الفهرسة" على جهاز الكمبيوتر الخاص بك.
  7. إنشاء التطبيق ثم قم بفتح صفحة.aspx في المستعرض الخاص بك. لاحظ ظهور رسالة الخطأ المسردة في قسم "الأعراض".

المراجع

لمزيد من المعلومات حول التمثيل في ASP.NET، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":

كيفية تنفيذ الانتحال في أحد تطبيقات ASP.NET 306158

لمزيد من المعلومات حول هوية عملية ASP.NET العامل، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":

هوية العملية وطلب 317012 في ASP.NET

خصائص

رقم الموضوع: 323293 - آخر مراجعة: 15‏/01‏/2017 - المراجعة: 1

تعليقات