Взаимодействие между MSXML и .Net с использованием COM + - PullRequest
3 голосов
/ 02 апреля 2012

Мне необходимо создать компонент .Net C # с этими двумя требованиями:

  1. Предоставление XML и пути XSL в качестве входных параметров должно возвращать строку HTML.
  2. Механизм XSLT должен быть реализован с использованием процессора MSXML XSLT *

Использование MSXML через COM Interop может бытьвариант, но я нашел эту страшную статью базы знаний по этому вопросу, которая гласит:

815112 ИНФОРМАЦИЯ: Использование MSXML не поддерживается в приложениях .NET
http://support.microsoft.com/kb/815112

MSXML использует модели потоков и механизмы сборки мусора, которые не совместимы с .NET Framework.Использование MSXML в приложениях .NET через взаимодействие COM может привести к непредвиденным проблемам, которые трудно отладить.

Может ли использование MSXML в пакете вне процесса COM+ быть более безопасным способом доступаMSXML из приложения .NET?
Как указано в моих требованиях, мне не нужно обрабатывать MSXML классы или интерфейсы как параметры ввода / вывода, а просто простые ванильные строки.

* База кода состоит из тысяч XSL-файлов, которые отлично работают на MSXML XSLT-движке (MSXML 4.0), но дают больше, чем просто ошибка с библиотекой System.xml .Net.

1 Ответ

3 голосов
/ 02 апреля 2012

Да, вы можете создать приложение COM + вне процесса , а затем использовать классы в System.EnterpriseServices пространстве имен или WCF (I Я бы пошел с этим, лично), чтобы подключиться к приложению COM +.

Конечно, это означает, что вам придется использовать какую-то другую технологию помимо .NET для размещения вашего компонента, но это, вероятно, самый простой способ получить изоляцию и совместимость процессов с .NET вне вне коробки.

...