2015-05-21 4 views
0

У меня есть asp.net webservice, который ссылается на DLL смешанного режима. Собственная dll, что ссылка на сборку смешанного режима находится в каталоге, который добавляется в SYSTEM PATH.Загрузка смешанного режима в asp.net

Я хочу удалить родную библиотеку dll из SYSTEM PATH, поэтому я скопировал всю папку dll в каталог bin в webservice, но получаю исключение из файла не найденным.

Does asp.net не ищет в каталоге bin веб-службы для родных dll? Есть ли способ динамически установить SYSTEM PATH? Как я могу заставить это работать.

+0

Вы видели это сообщение: http://stackoverflow.com/questions/126331/specifying-a-non-net-dependency-in-visual-studio –

+0

Да Давид, я копирую DLL. В каталоге bin webservice есть все родные DLL, но он не находит его. Если я поместил все DLL в отдельный каталог и добавлю этот каталог в системный путь, тогда все будет работать. –

ответ

0

Если кто сталкивается с подобной ситуацией, это то, что я сделал, чтобы иметь возможность загружать смешанный режим сборки из места не в этих местах:

  1. каталог, из которого загружается приложение. В случае ASP.Net это будет разрешено для% windir% \ Microsoft.Net \ Framework \ v ### \ или% windir% \ system32 \ inetsrv для IIS 6.
  2. Текущий каталог. В случае ASP.Net это будет разрешено для% windir% \ System32 \ inetsrv для IIS 6. При использовании встроенного веб-сервера это разрешает путь в C: \ Program Files \ Microsoft Visual Studio 8.
  3. Системный каталог Windows. Используйте функцию GetSystemDirectory, чтобы получить путь к этому каталогу.
  4. Каталог Windows. Используйте функцию GetWindowsDirectory, чтобы получить путь к этому каталогу.
  5. Каталоги, перечисленные в переменной среды PATH.

Я установил родные DLL на сборке смешанного режима, чтобы задержка была загружена. Затем я следил за опцией 2b от http://blogs.msdn.com/b/jorman/archive/2007/08/31/loading-c-assemblies-in-asp-net.aspx

Мне просто пришлось сделать одну небольшую настройку для варианта 2b. В нем говорится обновить метод «Application_Start» в Global.asax, но мне пришлось обновить метод «Application_BeginRequest», чтобы он работал с моим веб-сервисом.

Смежные вопросы