سؤال

حلنا عبارة عن مجموعة من Windows وخدمات الويب التي يمكن تشغيلها جميعًا على جهاز واحد أو توزيعها بالكامل.

نحتاج فقط إلى جزء واحد من التكوين لربط كل هذه الأشياء معًا (يحدث أن تكون نقطة نهاية RabbitMQ ولكن هذا ليس مهمًا).

تحتاج بعض خدماتنا إلى تشغيل 32 بت تطبيق ، وسيتم تشغيل بعض خدمات الويب في تجمعات التطبيقات التي تبلغ 32 بت ، لذلك لدينا مزيج من العمليات التي تعمل بـ 64 و 32 بت على نفس الجهاز.

حسب التفضيل ، وضعنا قطعة واحدة من التكوين في machine.config .net. تتمثل مهمتي الحالية في كتابة واجهة مستخدم Bare Bones Forms لتحديث الماكينة.

ومع ذلك ، افتراضيًا ، فتح تكوين الجهاز مع

config = System.Configuration.ConfigurationManager.OpenMachineConfiguration();

يفتح الماكينة. أحتاج إلى تحديث ملفات تكوين الجهاز 32 و 64 بت بنفس القيمة.

هل هناك طريقة معروفة وآمنة للقيام بذلك؟

غريزتي الأولى هي أن يكون لديك تطبيق وحدة تحكم يمكن أن يتصل به واجهة المستخدم للقيام بالتحديث الفعلي ، ولديه نكهات مختلفة واحدة 32 وواحدة 64 بت.

أو هل هناك طريقة أفضل للقيام بذلك؟

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

المحلول

أعتقد أنك يجب أن تكون قادرًا على استخدام OpenMappedMachineConfiguration الطريقة على ConfigurationManager لفتح ملف تكوين الجهاز معين.

var path = "path to desired machine config";
ConfigurationFileMap cfm = new ConfigurationFileMap(path);
Configuration config = ConfigurationManager.OpenMappedMachineConfiguration(cfm);

يمكن العثور على مزيد من المعلومات حول الطريقة هنا:http://msdn.microsoft.com/en-us/library/system.configuration.configurationManager.openMappedMachinEconFiguration(V=Vs.110).aspx

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