none
Проблема с DllImport в IIS RRS feed

  • Общие обсуждения

  • Всем привет!

    Помогите разобраться с проблемой.

    В Asp.NET MVC приложении подключаю нативную библиотеку ConvertPicSigFinger.dll, расположена в Bin

    [DllImport("ConvertPicSigFinger.dll")] private static extern IntPtr convertWSQtoBMP(byte[] pic, int length, out int len); private delegate IntPtr convertFunc(byte[] bt, int len, out int len2);

    private static byte[] convertF(byte[] pic, convertFunc cf)
            {
                int dataBlockSize = 0;
                if (pic == null || pic.Length == 0) return null;

                IntPtr unsafeDataBlock = cf(pic, pic.Length, out dataBlockSize);

                if (unsafeDataBlock.ToInt32() == 0) return null;

                byte[] byteArray = new byte[dataBlockSize];
                Marshal.Copy(unsafeDataBlock, byteArray, 0, dataBlockSize);
                return byteArray;
            }

    private static byte[] WSQ2BMP(byte[] pic) { if (IsBMP(pic)) return pic; else return convertF(pic, convertWSQtoBMP); }

    Вызываю через делегат метод WSQ2BMP, который должен возвращать массив байтов.

    Проблема в том, что если запускать этот код в Web приложении через IIS то метод возвращает null.

    А в настольном приложении все работает нормально.

    В чём может быть проблема? Первое что приходит в голову - проблема с доступом, потому что приложение запускается через IIS.

    Пробовал менять пользователя в пуле и в приложении, но это не помогло.

    Помогите пожалуйста решить проблему

    29 апреля 2015 г. 7:52

Все ответы