2017-06-03 94 views
0
Application.run方法调用到MS Access

消息读取信息:System.Runtime.InteropServices.COMException:从HRESULT异常:0x800A9D9F收到COMException HRESULT:0x800A9D9F与来自ASP.NET

环境:访问2016中,Windows 10,IIS 10.0 ; ASP.NET 4.7,URL http://127.0.0.1/openAccess3.aspx。该代码位于ISS Web服务器上的ASP.NET文件中。没有互联网参与。浏览器和ISS都在我的桌面上。这里是有问题的代码:

Dim oAccessApp 
oAccessApp = createObject("Access.Application") 
oAccessApp.OpenCurrentDatabase "C:\inetpub\wwwroot\WPE_Dev\WPE_Support.accdb") 
oAccessApp.Run("ReadJSON") 
oAccessApp.Quit 

如果我注释掉oAccessApp.Run(“ReadJSON”)。访问打开和关闭,就像你所期望的一样。

在访问信任中心我设置宏设置为“启用所有宏(不推荐,潜在危险代码可以运行)”这并没有帮助

+0

所以CREATEOBJECT不工作?这意味着您需要运行x64位版本的Access - 或者您必须以x32位模式运行IIS。由于Access似乎打开,那么例程ReadJSON将不得不被标记为公共子(而不是函数),并且在标准代码模块中,而不是在表单代码模块中。 –

+0

谢谢Albert。我正在运行64位Office 2016和64位Windows 10.我确实将该功能更改为子功能。我仍然得到同样的错误。欧文 –

+0

如上所述,然后在服务器上浏览到数据库。双击启动,然后按ctrl-g跳转到调试窗口。现在输入你的子名称来运行“readJason”。例程应该运行。如果没有,你的上面的代码将不起作用。 –

回答

0

在IIS我的过程模型标识设置为管理员。这个代码现在可以运行了,也许我做的另一个调整也有帮助,但是这个改变是让它运行的。

0

我解决了这个问题(不是来自ASP,而是来自.NET可执行文件)我的网络上

在访问:
File->Options->Trust Center->Trust Center Settings->Trusted Locations
Allow Trusted Locations on my network开通服务或者是添加一个新的位置(没试过)

Add, remove, or change a trusted location

相关问题