معالج مخصص يعمل على خادم تطوير ASP.NET ولكن ليس على IIS 5.1؟

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

  •  05-09-2019
  •  | 
  •  

سؤال

مرحبا يا شباب، لقد حصلت على مشكلة غبية.

يعمل معالج مخصص الخاص بي بنسبة 100٪ على خادم Development ASP.NET ولكن عندما نشر الموقع إلى IIS 5.1 كلما حاولت تشغيل التعليق / البحث (الذي يجد مستخدم عبر مكالمة AJAX) (أعرف تسمية Hy Handler Sux! !! :)

أحصل على هذا الخطأ:

لا يمكن عرض الصفحة الصفحة التي تبحث عنها لا يمكن عرضها لأن عنوان الصفحة غير صحيح.

يرجى تجربة ما يلي:

* If you typed the page address in the Address bar, check that it is entered correctly.
* Open the home page and then look for links to the information you want.

HTTP 405 - الموارد غير المسموح بها لخدمات معلومات الإنترنت

المعلومات الفنية (لموظفي الدعم)

* More information:
  Microsoft Support

التعليمات البرمجية الخاصة بي لاستدعاء AJAX هي:

 function findUser(skip, take) {

        http.open("post", 'Comment/FindUser', true);
        //make a connection to the server ... specifying that you intend to make a GET request
        //to the server. Specifiy the page name and the URL parameters to send
        http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http.setRequestHeader('Criteria', document.getElementById('SearchCriteria').value);
        http.setRequestHeader("Skip", skip);
        http.setRequestHeader("Take", take);
        http.setRequestHeader("Connection", "close");

        //display loading gif
        document.getElementById('ctl00_ContentPlaceHolder1_DivUsers').innerHTML = 'Loading, Please Wait...<br /><img src="Images/loading.gif" /><br /><br />';

        //assign a handler for the response
        http.onreadystatechange = function() { findUserAction(); };

        //actually send the request to the server
        http.send(null);

}

من فضلك هل من احد يساعدني؟؟

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

المحلول

تأكد من أنك سمحت بالملحق على خادم IIS. خادم التطوير يفعل هذا تلقائيا لك.

إذا قمت بفتح خصائص موقع الويب، فانتقل إلى علامة التبويب الدليل الرئيسي وانقر فوق زر التكوين.

في هناك، حاول إضافة الملحق الذي تستخدمه لهذه المعالج. قم بتعيين الملف القابل للتنفيذ إلى ASPNENT_ISAPI.DLL (انظر إلى ملحق .aspx القياسي للعثور على مكان وجوده على جهاز الكمبيوتر الخاص بك) وإلغاء تحديد "التحقق من وجود هذا الملف موجود".

لقد أحرقت بهذا بضع زمنيا وهذا فرز المشكلة

كولن ج

نصائح أخرى

على IIS، لن تتم معالجة جميع المكالمات بواسطة معالج ASP.NET (على عكس Cassini Server Development) ما لم تنتهي المكالمة في .aspx، .ashx إلخ. NET ISAPI DLL لن يقوم بمعالجة المكالمة.

فكرة في

HTTP 405 - الموارد غير المسموح بها لخدمات معلومات الإنترنت

ستحتاج أيضا إلى تعيين المعالج في Web.config إذا لم يكن هناك ملف .ashx المقابلة في نظام الملفات.

كانت المشكلة أنه عندما كنت أتصل المعالج على dev. الخادم كنت استدعاءها lyk هذا

http.open("post", 'Comment/Rate', true);

لأنه في Web.config، أصدرت تعليماتها بالقبض على جميع "التعليق /" عناوين URL واتصل بالتعليق. اشمم لمعالجتها.

 <add verb="*" path="Comment/*" type="CoffeeMashup2.CommentHandler"/>

ولكن لسبب ما في IIS، لم يعمل ذلك، لذلك غيرت دعوة أعلاه

http.open("post", 'CommentHandler.ashx/Rate', true);

وعملت 100٪

شكرا جزيلا على مساعدتكم

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