gpt4 book ai didi

自 KB4338419 以来,无法再从经典 ASP 创建 C# COM 对象

转载 作者:行者123 更新时间:2023-11-30 14:22:09 25 4
gpt4 key购买 nike

<分区>

我们最近在一个依赖于一组 C# COM 组件的经典 ASP 应用程序中遇到了一个问题,并且已经确定 KB4338419 中引入的更改对我们造成了一些影响!

我们已将问题简化为基本要素:

创建了最简单的 C# COM 库:

using System;
using System.Runtime.InteropServices;

namespace TestComObject
{
[ComVisible(true)]
[Guid("B5C7370F-0EB5-4279-885C-9C169F9CBAA5")]
[ClassInterface(ClassInterfaceType.None)]
public class Class1
{
public string GetString()
{
return Guid.NewGuid().ToString("D");
}
}
}

使用 RegAsm/codebase 在服务器上注册

创建了最简单的 ASP 脚本来使用它:

<%
Const COM_OBJECT_NAME = "TestComObject.Class1"
Dim co
Set co = Server.CreateObject(COM_OBJECT_NAME)
Response.Write co.GetString()
%>

访问页面时,我们看到:

Microsoft VBScript runtime error '800a01ad'

ActiveX component can't create object

/Default.asp, line 4

Web 应用程序在 IIS (8) 中运行,使用专用的非特权用户帐户。 (真实)代码多年来一直运行良好,权限有限。如果我将用户添加到 Administrators 组,则实例化 COM 对象。作为普通用户,页面/代码失败。如果我将 progID 更改为非 .Net 库,一切正常

文件系统权限没问题。如果我编写一个 .vbs 等价物并以非特权用户身份执行,一切正常。

KB4338419 的文章暗示对 .Net COM 对象的实例化或访问方式进行了一些安全更改,并且可以理解没有详细说明,我可以相信我们做错了什么或没有做现在被认为必不可少的事情,但我可以'找不到任何建议我们应该做什么的信息!

非常感谢您的帮助!蒂姆

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com