【问题标题】:VFP6 Com DLL not working in vs2012 .net framework 4.5 MVC 4 web applicationVFP6 Com DLL 在 vs2012 .net 框架 4.5 MVC 4 Web 应用程序中不起作用
【发布时间】:2016-06-24 05:56:00
【问题描述】:

我在我的 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 兼容?

请帮我解决这个问题。

【问题讨论】:

  • 可能是 32 位问题?确保您的目标平台是 x86。 OTOH 出现 C0000005 错误的原因有很多,其中大部分已在 VFP9 之前得到纠正。我假设您已经导入了 typelib。您是否也测试过,如果该 DLL 可以成功地与 VB6 或 JScript 一起使用?

标签: .net visual-foxpro


【解决方案1】:

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

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

【讨论】:

  • 你应该去别的地方问可能是对原始问题的评论,但这里绝对永远是一个合适的答案。此空间仅用于为所提出的问题写一个答案,仅此而已。
  • 很公平。我没有意识到两者之间的区别,但我现在明白了。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 2023-03-27
    相关资源
    最近更新 更多