我对这些旧东西不熟悉......我已经在Windows Server 2012上设置了我的COM +应用程序(经典ASP),但只能通过取消选中“对此应用程序执行访问检查”来运行它应用属性。它现在运行正常,但只要应用程序试图以任何方式命中数据库,我什么都得不到。我检查了对必要文件夹的访问权限(据我所知),用户(本地用户,在标识选项卡中)具有读/写访问权限。有任何想法吗?是否需要更多信息?
答案 0 :(得分:1)
正如您可能已经知道的那样,Windows Server版本是一个不断变化的许可问题(即用户身份问题)的雷区。 2008年的工作可能不再适用于2012年。
经典ASP解决方案中的组件几乎都有可能在Windows环境中作为不同的身份运行。
意外身份的典型示例是系统,网络服务和IUSR。
这些选项咬人的地方,例如:
根据您的描述,我假设您已启动并运行IIS站点,并且您的问题仅限于从COM组件访问数据库。您需要确定COM组件如何连接到数据库,并检查数据库是否接受正在使用的凭据。如果您对数据库使用Windows身份验证,则需要确认正在使用的run-as标识。在我的设置中,我们创建了一个专门用于COM的专用Windows用户,这样我们就可以完全确定身份,而在我们最简单的COM组件记录中,我们捕获run-as身份只是为了确认它所有都正确连线。
我们对IIS应用程序池用户的专用Windows用户也这样做。一般来说,最好通过自己分配而不是采用默认值来确定使用哪个身份。此外,Windows服务等默认设置似乎在Windows中的权限数量正在减少。
谨慎提示 - 另一方面,请不要为您的专用用户提供超出他们需要的访问权限,例如,当您感到沮丧或感觉通过权限问题时,将其设为管理员组的成员。当然,在非常临时的基础上分配这些以确认访问权限是问题,但请务必尽快删除此类分配。
编辑:当你的评论进来时,我写了这一半。你说有一个缺失的组件 - 我没有考虑到这种潜力,因为你似乎在说配置有效,但COM没有。干得好,可以解决您的问题。我会留下这个答案,因为我写的一些内容可能对将来走同样或类似路径的人有用。