2016-06-24 1 views
0

Я использую библиотеку COM DLL (библиотеку типов), созданную с помощью vfp6 в моем приложении MVC 4 для обработки данных с таблицами данных FoxPro DB. Я могу успешно зарегистрировать dll с помощью Regsvr32, а также могу делать ссылки в моем проекте.VFP6 Com DLL не работает в vs2012 .net framework 4.5 Веб-приложение MVC 4

В моем веб-приложении я могу создать объект для класса COM-библиотеки dll, но не смог получить доступ к его свойствам или методам. Я получил iisexpress.exe has exited with code - 1073741819 (0xc0000005) нарушение доступа error when run the project from visual studio(admin mode) with debug. If i run the project without debug i got "System.Runtime.InteropServices.COMException: The server threw an exception. (Exception from HRESULT: 0x80010105 (RPC_E_SERVERFAULT)) исключение.

Dim objCOM = new foxprocom() // this creats the instance without any issue 

objCOM.Path = "my path" -- this line throws the errors 

Ранее я использовал COM DLL, который был создан с помощью VFP9, который работает хорошо, но эта версия с использованием VFP6 не работает. Является ли vfp6 COM dll совместимым с .net 4.5?

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

+0

Возможно, это проблема с 32 битами? Убедитесь, что ваша целевая платформа - x86. OTOH существует множество причин для получения ошибки C0000005, большинство из которых были исправлены до VFP9. Я предполагаю, что вы уже импортировали typelib. Вы также тестировали, если эта DLL успешно работает с VB6 или JScript? –

ответ

-1

Возможно, вам удастся задать этот вопрос в форуме поддержки/пользователя на веб-сайте West Wind Technologies. Есть много пользователей, которые работали с FoxPro и .Net вместе, особенно замечательный Рик Страл, который является мастером такого рода вещей. не

http://support.west-wind.com/

+0

* Вы должны пойти куда-нибудь еще, чтобы спросить *, может быть, комментарий к исходному вопросу, но это абсолютно ** не обязательно ** соответствующий ответ здесь. Это пространство предназначено для написания ** ответа ** на заданный вопрос и ничего другого. –

+0

Достаточно честный. Я не понимал различия между ними, но я вижу это сейчас. – MattSlay

0

Простой ответ: нет. Несколько лет назад я столкнулся с проблемами, когда VP6 .dll больше не работали на сервере Server 2008 - сервер 2003 работал отлично. Проблема связана с более поздними версиями разрешений объектов IIS и COM. Я бы настоятельно рекомендовал использовать VFP9 для сборки COM-DLL, многое изменилось с тем, как объекты COM выполняют разрешения безопасности через службы компонентов с VFP6. Regsvr32 зарегистрирует вашу .dll в реестре, но этого уже недостаточно. Используя Component Services, вам нужно создать новое COM-приложение, а затем добавить ваши скомпилированные .dll и .tlb-файлы в качестве нового компонента. Затем вы можете назначить учетную запись пользователя и пароль для своего COM-объекта, чтобы убедиться, что он имеет доступ для чтения/записи к любым каталогам и базам данных, которые вам нужны. Также убедитесь, что вы прямо щелкните Foxpro9 и выберите «Запуск от имени администратора» перед компиляцией вашей DLL.

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

  • Нет связанных вопросов^_^