ComeXception Hresult:0x800A9D9F带有应用程序.lun方法调用来自ASP.NET的MS访问



消息读取:system.runtime.interopservices.comexception:Hresult的异常:0x800A9D9F

环境:访问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:inetpubwwwrootWPE_DevWPE_Support.accdb")
oAccessApp.Run("ReadJSON")
oAccessApp.Quit

如果我评论oaccessapp.run(" readjson"(。访问可以按照您的期望打开并关闭。

在Access Trust Center中,我设置了宏设置以"启用所有宏(不推荐;潜在的危险代码可以运行(",这无济于事。

在IIS中,我将流程模型标识设置为管理帐户。代码现在运行。我可能还进行了另一项调整,但这种更改就是使它运行的原因。

我通过允许在网络上允许可信赖的位置解决了此问题(不是来自ASP,而是来自net可执行文件(。

访问:
File->Options->Trust Center->Trust Center Settings->Trusted Locations
激活Allow Trusted Locations on my network或添加新位置(未尝试(

添加,删除或更改受信任的位置

不要这样做,它没有正式支持(我突出显示(:

Microsoft 当前不推荐,不支持 Microsoft Office应用程序从任何无人看管的,非关联的客户端应用程序或组件(包括 ASP, ASP.NET ,DCOM和NT服务(,因为办公室在此环境中运行时可能会表现出不稳定的行为和/或僵局。/blockquote>

来源:MS KB 257757。

因此,"正确"的解决方案将是将您的ReadJSON代码迁移到经典ASP(VBScript(或更好的是ASP.NET(C#或VB.NET(并在MS访问容器外运行。

(我知道这是一个潜在的代价高昂的解决方案,即使正式不支持,也可能值得冒险。任何时候。(

最新更新