Загрузка собственной управляемой и C ++ DLL в IIS 7 для проекта WCF во время выполнения - PullRequest
4 голосов
/ 21 ноября 2011

У меня есть служба WCF, разработанная на C # для .NET Framework 4.0 для IIS v7. Мой сервис использует некоторые управляемые библиотеки DLL VC ++. NET, которые внутренне опираются на некоторые собственные библиотеки C ++ DLL.

Теперь у меня есть следующие варианты:

1) Опубликовать все мои управляемые библиотеки DLL в GAC (глобальный репозиторий). 2) установите переменную среды PATH, перезапустите мой компьютер, чтобы сервер IIS (7) мог принять изменения.

Но клиент не хочет оба вышеперечисленных решения по следующим причинам; 1) Они не хотят ничего доступного в глобальном масштабе 2) Установив PATH, перезапустите машину для каждого развернутого сервиса .... NAAAAAH !!!!

Итак, я исследовал, а затем обнаружил, что могу настроить среду во время выполнения, поэтому я добавил некоторые свойства в свой файл Web.config и подумал о добавлении своей среды для каждой службы во время выполнения. Но проблема в том, что, где я должен написать этот мир кода, как будто я добавляю этот код в класс обслуживания IIS, произойдет сбой, поскольку он попытается разрешить все зависимости, но потерпит неудачу, поскольку мой код еще не запущен.

Теперь мне нужен способ разделить мой код, который настраивал среду в отдельный класс для каждого сервиса при запуске сервиса и вызывал его в конце, когда мы развертываем.

Я не уверен, возможно ли это вообще?

P.S Пожалуйста, помните, что я новичок в WCF и .NET.

Ваша помощь и комментарии будут оценены.

-

SJunejo

1 Ответ

0 голосов
/ 28 февраля 2012

Если вы не установите свойство «Задержка загрузки», все неуправляемые библиотеки DLL, на которые есть ссылки, будут загружены до того, как будет выполнен ваш код global.asax, поэтому он все еще находится в неправильном месте.

Вы должны выполнить все шаги в Варианте 2b), если хотите, чтобы он работал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...