سؤال

لدينا المستهلكة من طرف ثالث خدمة ويب و تحاول الاحتجاج به من غير ASP.NET تطبيق ويب.ولكن عندما كنت إنشاء خدمة ويب النظام التالية.InvalidOperationException طرح استثناء:

الأسلوب 'ABC.XYZ' لا يمكن أن تنعكس.النظام.InvalidOperationException:الأسلوب 'ABC.XYZ' لا يمكن أن تنعكس.---> System.InvalidOperationException:XML عنصر 'MyDoc' من مساحة 'http://mysoftware.com/ns'المراجع طريقة و نوع.تغيير طريقة رسالة باستخدام اسم WebMethodAttribute أو تغيير نوع عنصر الجذر باستخدام XmlRootAttribute.

من ما أستطيع أن جمع يبدو أن هناك بعض الغموض بين طريقة و نوع في خدمة ويب.يمكن لأي شخص توضيح ربما سبب هذا الاستثناء و هل هناك أي شيء يمكنني القيام به لتصحيح هذا أو هل يجب أن أذهب إلى خدمة ويب أصحاب لتصحيح?

تحرير:Visual Studio 2008 قد خلق فئة الوكيل.للأسف لا أستطيع توفير رابط wsdl كما هو خدمة ويب من أجل تثبيتها محليا thrid حزب التطبيق.

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

المحلول 2

يبدو المشكلة وصولا إلى نوع البيانات القضايا بين مباراة و خدمة ويب التي تم كتابتها في جاوة.

في نهاية المطاف كانت ثابتة يدويا تحرير الطبقة مخطط الملفات التي تم إنشاؤها من قبل مقابل.

نصائح أخرى

أنا واجهت نفس المشكلة في وقت سابق اليوم.وكان السبب - الفئة التي تم إنشاؤها بواسطة Visual Studio ومرت كمعلمة في إحدى الطرق لم الافتراضي parameterless منشئ.مرة واحدة لقد أضفت هذا الخطأ قد ذهب.

لقد جئت عبر نفس المشكلة عندما كنت تستهلك 3rd الطرف خدمة ويب.المشكلة في هذه الحالة أن mustUndertand الملكية في ملف مرجعي كان يبحث عن منطقية ، حيث الخاصية مساحة الاسم بحثت عن السلسلة.

من خلال النظر من خلال مرجعية كنت قادرا على idenitfy المخالف الممتلكات ببساطة إضافة "تجاوزات" على طريقة التوقيع.

لا مثالية في أي وقت يمكنك تحديث الخدمة لديك للقيام بذلك ولكن لم أتمكن من العثور على أي حل آخر.

للعثور على ملف مرجعي حدد "كافة الملفات" من "مستكشف الحلول"

ويساعد هذا الأمل

انا التخمين wsdl المنبعثة من أو تزويد الخدمة ليست في شكل wsdl.exe أو serviceutil يمكن أن نفهم - يمكنك نشر wsdl أو الارتباط به ؟

كيف يمكنك إنشاء وكيل الصفوف ؟

كما قد ترغب في محاولة التحقق من صحة wsdl ضد wsdl المخطط للتحقق صالح

في حالتي أنا كان الحصول على "الطريقة لا يمكن أن تنعكس" خطأ يرجع ذلك إلى حقيقة أن في فئة يتم إرجاعها بواسطة الأسلوب, أنا لم تعرض المعلمة الافتراضية أقل منشئ.

كنت أعمل في VB.NET.في عودتي من الدرجة أعلنت "جديدة(..)" الأسلوب الذي أخذت بعض المعلمات (لأن هذا هو ما أردت أن استخدامه في قانون بلدي).ولكن إذا كان يعاني من ضعف في أداء الافتراضي (المخفية) parameterless جديدة() منشئ VB يضيف وراء الكواليس.يبدو أن خدمة ويب معالج يتطلب أن parameterless منشئ تكون متاحة.في أقرب وقت كما أضفت إلى فئة parameterless جديدة() منشئ ، وعملت كل شيء بخير.

لدي نفس الرسالة ولكن لي كان سبب في عداد المفقودين System.Runtime.Serialization.dll حيث حاولت تشغيل 3.5 التطبيق على الجهاز فقط .NET framework 2.0 مثبتا.

كان عندي نفس المشكلة ولكن وجدت أن واحدة من WebMethod المعلمات قد العضو الذي هو من نوع interface هذا هو السبب VS لا يمكن أن serialise ذلك.هنا هو استثناء عند محاولة تحميل disco الملف

النظام.InvalidOperationException:لا يمكن إجراء تسلسل الأعضاء 'ليوبارد.JobDespatchParameters.SendingUser' من نوع 'ليوبارد.الواجهات.IUser' ، انظر الاستثناء الداخلي لمزيد من تفاصيل.---> System.NotSupportedException:لا يمكن إجراء تسلسل الأعضاء ليوبارد.JobDespatchParameters.SendingUser من نوع ليوبارد.الواجهات.IUser لأنه هو واجهة.

الموضوع القديم ولكن لدي مشكلة مختلفة, ربما من مساعدة شخص ما.المشار إليها dlls كانت مختلطة بين نسختين على طبقة البيانات و خدمة الطبقة التي تسبب المشكلة.

سيناريو آخر حيث هذا الخطأ يمكن أن يحدث:أنا ببساطة كان آخر ويب الطريقة مع نفس الاسم (ولكن معايير مختلفة)في خدمة الإنترنت التي انزلقت في خلال قانون الدمج.بعد حذف القديم طريقة عمل.

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