خطأ في استهلاك خدمة الويب من تطبيق Winform - "لا يمكن تنفيذ برنامج..."

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

  •  09-06-2019
  •  | 
  •  

سؤال

لدي تطبيق winform الذي يستدعي خدمة ويب للتحقق من وجود تحديثات.يعمل هذا في نظام التطوير ويعمل أيضًا في أي مكان آخر قمت بتجربته، ولكن ليس على النسخة المثبتة على جهازي (والتي تصادف أنها هي نفسها في جهاز التطوير).

الخطأ هو:

لا يمكن تنفيذ البرنامج.الأمر الذي يتم تنفيذه هو "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe" /noconfig /fullpaths @"C:\Documents and Settings\Giovanni.DOUBLE-AFSSZ043\Local Settings emp\squ8oock .cmdline".

تم تعطيل جدار الحماية وبحثت عن "C:\Documents and Settings\Giovanni.DOUBLE-AFSSZ043\Local Settings emp\squ8oock.cmdline" ولم يكن موجودًا.لاحظ أنه في كل مرة أحاول استخدام خدمة الويب ، يختلف ملف ".cmdline" ، على سبيل المثال في المرة الثانية التي قمت فيها بتشغيلها ، كانت "dae8rgen.cmdline." بغض النظر عن الاسم الذي يحمله ، لا يمكنني العثور على الملف أبدًا.

أي اقتراحات؟

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

المحلول

الملف ".cmdline" هو ملف تم إنشاؤه تلقائيًا بواسطة إطار عمل .NET.يحاول التطبيق تجميع برنامج XML Serializer في الوقت الفعلي والمستخدم لتحليل البيانات من خدمة الويب.

هل تأكدت من أنه يمكنك تنفيذ "csc.exe" من نافذة سطر الأوامر؟حتى مجرد كتابة "c: windows microsoft.net framework v2.0.50727 csc.exe /؟" يجب أن تحصل على قائمة بخيارات البرمجيات (أو يجب أن تعطيك خطأ إذا لم يكن لديك أذونات لتنفيذها).

ما هو حساب المستخدم الذي تقوم بتشغيل هذا تحته، وهل لديه أذونات لتنفيذ ملفات .exe في دليل windows؟وبالمثل، أعلم أنك قلت أن هذا يحدث مع النسخة المثبتة على جهازك، ولكن هل من الممكن أن يتم تنفيذ مشاركة عبر الشبكة وتلقي أذونات محدودة لـ Code Access Security مما قد يمنعها من تشغيل الملفات التنفيذية المحلية؟

كمرجع، إليك مقالة قاعدة بيانات توضح خطأً مشابهًا يمكن أن يحدث في ASP.NET عندما لا يكون لدى حساب المستخدم أذونات كافية.http://support.microsoft.com/kb/315904

نصائح أخرى

واجهت نفس المشكلة واكتشفت أنني نفدت الذاكرة من نوع ما.

بعد التحقق من Redhats "ANTS Memory Profiler" وجدت أن لدي كمية كبيرة من الذاكرة في COM+ لجذور GC.بحث سريع في جوجل ووجدت نفسي هنا: msdn XmlSerializers

ثم قرأت ما يلي:

إذا كنت تستخدم أيًا من المُنشئين الآخرين ، فسيتم إنشاء إصدارات متعددة من نفس المجموعة ولا يتم تفريغها أبدًا ، مما يؤدي إلى تسرب ذاكرة وضعف الأداء.الحل الأسهل هو استخدام أحد المُنشئين المذكورة سابقًا.خلاف ذلك ، يجب عليك تخزين التجميعات في علامة تجزئة ...

بعد إنشاء جدول تجزئة للمُسلسلات، اختفت مشكلتي المتمثلة في تسرب الذاكرة (وضعف الأداء) ورسالة الخطأ الناتجة مثل رسالتك.

لقد قمت بحل نفس المشكلة باستخدام ISSReset

إذا تم فرض AppLocker، فيرجى السماح بذلك أدناه (أضف كاستثناء للمسار)

c:\windows\MICROSOFT.NET\FRAMEWORK\V2.0.50727\CSC.EXE c:\windows\MICROSOFT.NET\FRAMEWORK\V2.0.50727\CVTRES.EXE

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