在将 DCOM 与 IIS 和 .aspx 页面一起使用以显示数据库数据时,是否可以解决 DCOM 交互式用户权限错误?

Is it possible to resolve a DCOM Interactive User permission error, when using DCOM with IIS and .aspx pages displaying data from a database?

有许多与此听起来相似的问题,但其中 none 完全解决了这个具体问题。

我敢肯定还有很多其他页面与此类似,但我就到此为止了。

场景是这样的: Windows 10... ...托管从真实传感器获取近实时数据的应用程序(或应用程序集群)解析数字,将它们写入数据库,并通过 IIS 和 DCOM 将它们呈现在浏览器 .aspx 页面上 (这是一个古老而神秘的 application/set 应用程序,其源代码或文档有限或没有)。

有时,在完成所有安装和配置步骤后,您会看到一个 localhost/something.aspx 页面,虽然您可以通过将鼠标悬停在字段上来查看变量,但未填充值。 查看 Windows 事件查看器,您可能会看到如下错误:

事件 ID 10016 - 特定于应用程序的权限设置未授予 COM 服务器应用程序的本地激活权限

特定于应用程序的权限设置未授予具有 CLSID 的 COM 服务器应用程序的本地启动权限{...在注册表中找到的长十六进制数字...}

即: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID{8D8B8E30-C451-421B-8553-D2976AFA648C} 还有两个键,但我正在打字的这台 PC 上没有它们;一个是用于处理 DCOM 的已安装组件,另一个也与交互式用户有关。

安装的,通常是报告没有权限的,通常是 "NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20)" 用户(组成一组管理员和用户帐户) [https://www.experts-exchange.com/questions/24205909/NT-AUTHORITY-NETWORK-SERVICE-SID-S-1-5-20-on-Windows-Server-2003.html...暂时无法访问此页面];然后,当您进入安全性并为其添加特定权限时,您将只剩下它报告上述交互式用户密钥,即 8d8... 一个和 726... 一个,您无法为其编辑权限。

让我感到困扰的是,这显然是一个彻头彻尾的魔法之谜,这在计算机系统中是不可接受的! :D 目前的解决方案是不用费心摆弄,只需格式化机器,重做 windows,完成所有应用程序安装、IIS 和 DCOM 步骤,然后从头开始重新配置 .aspx,并希望一切顺利 -即:你做事的神奇特殊顺序让它发挥作用,"because it does"。我认为这有点荒谬,而且很耗时,更重要的是,它让我非常烦恼,因为对于实际问题是什么以及解决方案可能是什么,并没有真正清晰的概念。

一定有某些特定的事情发生或没有发生导致 DCOM 无法与 .aspx 网页对话;当然可以在事件发生后进行调整,而无需破坏整个系统并花费很长时间重做。就好像某些东西是 "unplugged" 或与正在查看或过滤的内容不同 identity/name/number .aspx 页面摄取的内容,也许是代码中的某些内容? IIS 选择中的内容?需要重置的东西?不确定...

我不是在寻求灵丹妙药,但如果有人愿意帮助解决这个问题,我将不胜感激,这既烦人又令人沮丧,我想查个水落石出,并希望创建一个其他人可能从中受益的最终线程。

这似乎与 4 年前的问题完全相同。

https://answers.microsoft.com/en-us/windows/forum/windows8_1-winapps/weather-application/e4630db3-50c2-4cc5-9813-f089494a1145

你好 不确定这是否会解决您的问题,但我能够解决我的问题。

  1. 打开注册表编辑器。

  2. 转到 HKEY_Classes_Root\CLSID*CLSID*。 注意:CLSID 代表出现在您的事件查看器错误中的 ID。在您的情况下,它是 {C2F03A33-21F5-47FA-B4BB-156362A2F239}。

  3. 右键单击它然后select权限。

  4. 单击“高级”并将所有者更改为管理员。同时单击将出现在所有者行下方的框。

  5. 应用完全控制。

  6. 关闭选项卡然后转到 HKEY_LocalMachine\Software\Classes\AppID*APPID*。 注意:AppID 是显示在您的事件查看器中的 ID。在你的情况下它是 {316CDED5-E4AE-4B15-9113-7055D84DCC97}。

  7. 右键单击它然后select权限。

  8. 单击“高级”并将所有者更改为管理员。

  9. 单击将出现在所有者行下方的框。

  10. 单击应用并授予管理员完全控制权。

  11. 关闭所有选项卡并转到管理工具。

  12. 打开组件服务。

  13. 单击“计算机”,单击“我的电脑”,然后单击“DCOM”。

  14. 查找出现在错误查看器上的相应服务。 注意:对于此步骤,请查找出现在 RegEdit 右侧面板中的那个。例如,AppID 注册表 (316CDED5-E4AE-4B15-9113-7055D84DCC97) 包含名称为 (Default) 的 "Immersive Shell" 数据。现在寻找 "Immersive Shell".

  15. 右键单击它然后单击属性。

  16. 单击安全选项卡,然后单击添加用户。添加SYSTEM然后申请。

  17. 勾选激活本地框。

    重启。

    希望对您有所帮助。

    编辑:我编辑了第 14 步,使其更清晰。很高兴能帮上忙。

在进入这些冗长的过程和编辑注册表之前。我会在本地连接设置中查看 TCP/IPv6。如果已启用,则禁用它并刷新 dns 或重新启动服务器。希望对以后的求职者有所帮助。

祝大家幸福..