DLLImport не находит длл - PullRequest
       6

DLLImport не находит длл

2 голосов
/ 10 февраля 2011

Я использовал DLLImport[absolute path of the C++ dll] в своем коде asp.net C # для вызова метода, который находится внутри C ++ dll. И это прекрасно работает.

Затем я опубликовал сайт на IIS, и он говорит, что не может загрузить DLL.

Подскажите, пожалуйста, как решить эту проблему?

Ответы [ 2 ]

2 голосов
/ 10 февраля 2011

Я использую Native LoadLibrary для загрузки DLL из определенного места.Приведенный ниже URL рассказывает о том, как это можно сделать.

Я предполагаю, что у вас есть правильный набор разрешений для работы с неуправляемым кодом, вы используете что-то в строках:Где Label1:

<asp:Label id="Label1" Text="Label Control" runat="server"/>

Далее нужно проверить разрядность вашей среды asp.net, чтобы убедиться, что она соответствует .dll ... поскольку библиотека x86 не может быть загружена через среду x64.

Как вызвать C ++ DLL из кода ASP.NET (C #)?

http://msdn.microsoft.com/en-us/library/ms684175

1 голос
/ 10 февраля 2011

Было бы очень трудно угадать .Наиболее вероятные причины:

  • Местоположение не существует
  • Удостоверение пула приложений не имеет доступа к папке, следовательно, не может найти путь.
  • На сервере происходит некоторая странная виртуализация.
  • Необходимо определить атрибут AllowPartiallyTrustedCallers , поскольку сервер может иметь более строгую защиту с использованием P / Invoke.

Прежде всего, я бы посмотрел на Журнал событий Windows -> Безопасность и приложение.

Если бы я мог запустить некоторые инструменты на этом сервере, я бы запустил sysinternal'sProcMon.exe чтобы узнать, какие пути он просматривает при попытке определить путь к DLL.

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