VFP6 Com DLL无法在vs2012 .net framework 4.5 MVC 4 Web应用程序中运行

时间:2016-06-24 05:56:00

标签: .net visual-foxpro

我正在使用在我的MVC 4应用程序中使用vfp6创建的COM DLL(类型库)来使用FoxPro DB数据表进行数据操作。我可以使用Regsvr32成功注册dll,也可以在我的项目中进行引用。

在我的Web应用程序中,我可以为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

之前我使用的是使用vfp9创建的COM dll,它工作正常但是使用vfp6的这个版本无效。 vfp6 COM dll是否与.net 4.5兼容?

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

您可以在West Wind Technologies网站的支持/用户论坛中提出这个问题。那里有很多用户和FoxPro以及.Net一起工作过,尤其是着名的Rick Strahl,他是这类东西的大师。

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

答案 1 :(得分:0)

简单的答案是否定的。多年前,我遇到了VP6 .dll不再使用Server 2008的问题 - Server 2003运行得很好。问题是更新版本的IIS和COM对象权限。我强烈建议使用VFP9来构建你的COM .dll,自VFP6以来,COM对象如何通过组件服务执行安全许可已经发生了很大变化。 Regsvr32会将您的.dll注册到注册表中,但这已经不够了。使用组件服务,您需要创建一个新的COM应用程序,然后将已编译的.dll和.tlb文件添加为新组件。然后,您可以为COM对象分配“用户”帐户和密码,以确保它对您需要的任何目录和数据库具有读/写访问权限。还要确保在编译dll之前右键单击Foxpro9并选择以管理员身份运行。