gpt4 book ai didi

C# ComVisible DLL 仅在连接远程桌面时可供 IIS 使用

转载 作者:行者123 更新时间:2023-11-30 12:41:42 26 4
gpt4 key购买 nike

我创建了一个用给定域名(我工作的公司)签名的 ComVisible DLL。我将这个 DLL 放到客户的 Web 主机上,它在不同的域下运行,并使用以下命令注册它:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regsvcs

DLL 在客户 Web 主机的本地磁盘上创建一个 XLSX 文件。用户可以使用浏览器下载该文件。

如果我为客户的 Web 主机打开了一个远程桌面 session ,DLL 将按预期运行,客户可以下载创建的临时文件。

但是,一旦我放弃远程桌面 session (我没有注销并保持 VPN 连接),DLL 就不再可访问。临时文件不再由asp classic站点创建,客户当然无法流式传输未创建的文件。

有什么想法会导致这种情况吗? Web 服务器不会生成任何错误。

我认为 DLL 使用不同的域名签名,然后 Web 服务器主机是问题的一部分,但无法想象为什么打开远程桌面 session (我只使用 Microsoft 的 mstsc)可以解决问题。

最佳答案

最后我从 AssemblyInfo.cs 中删除了以下代码:

[assembly: ComVisible(true)]
[assembly: ApplicationActivation(ActivationOption.Server)]
[assembly: ApplicationAccessControl(false,
AccessChecksLevel = AccessChecksLevelOption.ApplicationComponent)]

我移动了 ComVisible 和我的 Guid 调用以成为我想向 COM 公开的类的装饰器,现在 DLL 始终正确实例化并且工作无误。

我现在也使用以下方式注册:

RegAsm.exe d:\foo\bar.dll /codebase /tlb

关于C# ComVisible DLL 仅在连接远程桌面时可供 IIS 使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36753596/

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