أين أنا ذاهب خطأ في استدعاء أساليب ويب ASMX من مسج؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

ولدي webmethod بسيط على 2.0 تطبيق asp.net (باستخدام 1.0 ملحقات ليس ملحقات 3.5 اياكس). أنا محاولة استدعاء الأسلوب من مسج وعندما تفعل ذلك كما في الأمثلة لا تعد ولا تحصى تظهر على شبكة الإنترنت، وهنا على SO، وأحصل على إرجاع رسالة خطأ خادم الداخلية.

إليك قانون بلدي الحالي:

[WebMethod]
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
public string Select(string login)
{
    UserProfile profile = UserProfile.GetUserProfile(login);

    return "{ FirstName: '" + profile.FirstName + "', " +
             "LastName: '" + profile.LastName + "', " +
             "EmailAddress: '" + profile.EmailAddress + "', " +
             "PhoneNumber: '" + profile.PhoneNumber + "' }";
 }

والآن مسج:

$.ajax({
    type: "POST",
    url: "Services/ProfileService.asmx/Select",
    dataType: "json",
    data: "{'login':'DOMAIN%5CUSER1'}",
    contentType: "application/json; charset=utf-8",
    success: function(msg){ alert(msg); },
    error: function(xhr){ alert(xhr.statusText);}     
});

وزينت خدمة ويب مع [ScriptService] السمة كذلك. إذا كنت التعليق خارج contentType، تغيير نوع البيانات إلى نص، وتغيير البيانات لتكون سلسلة الاستعلام (اسم = القيمة)، وأحصل على XML عاد بشكل مناسب.

وأين أنا ذاهب خطأ؟

وUPDATE: أنا أستخدم مسج V1.3.1 والاختبار في كل IE6 وفايرفوكس 3. انني اتلقى نتائج متسقة.

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

المحلول

وكان هذا خطأ غبي من جانبي. تم حل المشكلة. بينما كنت تضمنت إشارة إلى ملحقات AJAX، لقد نسيت أن كتابة httphandler لخدمات ASMX إلى فئة ScriptHandlerFactory.

وإضافة هذا حل المشكلة.

ومنذ أن كنت قد حصلت على بعض رسائل البريد الإلكتروني تستفسر عن أمثلة أو كيف تم حل المشكلة، كتبت بلوق وظيفة حول كيفية القيام بذلك الحساء إلى المكسرات.

HTTP: //randomactsofcoding.blogspot كوم / 2009/03 / مسج-سلمان-وasmx-20-services.html

نصائح أخرى

وييب. يجب عليك التخلي عن ASMX لتمويل رأس المال العامل. توصية من مايكروسوفت نفسها. واعتقد انه لن يساعدك في مشكلتك، ولكن يمكنك أن تفعل جيدا للنظر في تمويل رأس المال العامل أو على الأقل البدء في البحث في هذه التكنولوجيا.

وكان لي نفس المشكلة ولكن كانت ثابتة عندما أضفت ما يلي إلى ملف التعليمات البرمجية

[System.Web.Script.Services.ScriptService]

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