C# ActiveX组件可以';不创建对象COM互操作

C# ActiveX组件可以';不创建对象COM互操作,c#,vbscript,asp-classic,com-interop,C#,Vbscript,Asp Classic,Com Interop,我有一个要求,我必须使用base64编码的图像在经典的ASP 因此,我在C#project中创建了一个非常简单的类项目,并试图使其COM可见,我已经阅读了有关stackoverflow的所有指南和各种其他问题,但我仍然无法让vbscript创建该对象 程序集标记为ComVisible,输出标记为注册COM interop,该类的源代码: namespace Crypto { [ComVisible(true)] [Guid("ad491fe9-ade0-46a1-bae0-d40

我有一个要求,我必须使用base64编码的图像在经典的ASP

因此,我在C#project中创建了一个非常简单的类项目,并试图使其COM可见,我已经阅读了有关stackoverflow的所有指南和各种其他问题,但我仍然无法让vbscript创建该对象

程序集标记为ComVisible,输出标记为注册COM interop,该类的源代码:

namespace Crypto
{
    [ComVisible(true)]
    [Guid("ad491fe9-ade0-46a1-bae0-d407a987a9e9"),ClassInterface(ClassInterfaceType.None)]
    public class Base64
    {
        public Base64() {
            //default com exposable constructor
        }

        public string Base64Encode(string filePath) {

            if (!File.Exists(filePath)) return "";

            using (Image image = Image.FromFile(filePath))
            {
                using (MemoryStream m = new MemoryStream())
                {
                    image.Save(m, image.RawFormat);
                    byte[] imageBytes = m.ToArray();

                    // Convert byte[] to Base64 String
                    string base64String = Convert.ToBase64String(imageBytes);
                    return base64String;
                }
            }
        }
    }
}
构建完成后,我将其注册为cominterop,并使用

regasm *<file path>* /codebase /tlb
gacutil -i *<file path>*
我明白了

Microsoft VBScript runtime error '800a01ad'

ActiveX component can't create object: 'Crypto.Base64'
大约7-8年前,我在.NET2.0中与ComInterop合作过,一切都很顺利,我不明白这种情况下出了什么问题


在我的开发机器上,它是windows 10 pro 64位,目标编译是4.6.2 Framework

感谢@Lankymart为我指明了正确的方向

即使COM可公开的.NET程序集是针对32位/64位 32位应用程序仍然需要在应用程序池高级设置中启用才能正常工作


感谢@Lankymart为我指明了正确的方向

即使COM可公开的.NET程序集是针对32位/64位 32位应用程序仍然需要在应用程序池高级设置中启用才能正常工作

这应该有帮助—(特别是—“如何在Windows中注册COM DLL”部分)。可能重复的应该有帮助—(特别是—“如何在Windows中注册COM DLL”部分)。可能重复的
Microsoft VBScript runtime error '800a01ad'

ActiveX component can't create object: 'Crypto.Base64'