ما الذي يجب علي فعله لتنفيذ خادم COM "خارج نطاق proc" في لغة C#؟

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

  •  09-06-2019
  •  | 
  •  

سؤال

أحاول تنفيذ خادم COM "خارج proc" مكتوب بلغة C#.كيف أقوم بهذا العمل؟

أحتاج إلى أن يكون رمز C# "خارج نطاق العملية" من تطبيق C++ الرئيسي الخاص بي، لأنني لا أستطيع تحميل وقت تشغيل .NET في مساحة العملية الرئيسية الخاصة بي

لماذا؟:
رمز C++ الخاص بي موجود في ملف DLL الذي تم تحميله في العديد من ملفات EXE الخاصة بالعملاء، وبعضها يستخدم إصدارات مختلفة من وقت تشغيل .NET.نظرًا لأنه لا يمكن تحميل سوى وقت تشغيل واحد في عملية واحدة، يبدو أن أفضل رهان هو وضع كود C# الخاص بي في عملية أخرى.

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

المحلول

يمكنك إنشاء مكونات COM+ باستخدام System.EnterpriseServices.ServicedComponent.وبالتالي، سوف تكون قادرًا على إنشاء تنشيط مكون خارج بروك وداخل بروك (العميل) بالإضافة إلى جميع مزايا COM+ للتجميع والاتصال عن بعد والتشغيل كخدمة Windows وما إلى ذلك.

نصائح أخرى

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

لا أستطيع أن أوصي بهذا الطريقة, ، ولكن يمكنك إنشاء غلاف قابل للاستدعاء COM لمكتبة C# الخاصة بك، ثم إنشاء مشروع VB6 ActiveX exe الذي يقوم بتفويض المكالمات إلى مكتبة C# الخاصة بك.

لماذا لا يمكنك تحميل وقت التشغيل .net في مساحة المعالجة لديك؟من الممكن استضافة وقت التشغيل .net والاتصال بـ .net باستخدام COM.

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