如何解决vb6为什么我要无人值守执行并保留在内存集中?
| 14年前,当我还是一个绿色的号角时,为经典ASP设置组件并不属于我的薪资等级...但是,现在,我回到了未来,我发现自己不得不针对经典ASP项目进行维护和编码使用COM对象。 现在,我发现自己查看的是1999年至2001年的古老文章,我想知道是否有人对COM(ActiveX .dll)为什么应具有无人参与执行并保留在内存中有很好的答案? 我还应该注意,该站点的当前体系结构是刚刚放到服务器上的这些.dll(当然是已注册)。我想知道COM +和MTS。我们暂时仍使用经典的ASP(长篇而言)。但是,我希望能快速迁移到.NET。因此,如果我可以最小化此当前体系结构的维护时间,那将很有帮助。您能否也请给我一个为什么我们应该使用COM +和MTS的理由?以及与添加这些功能有关的内容。解决方法
无人参与执行会阻止您的VB6二进制文件显示交互式对话框,即Web客户端无法看到或与之交互的服务器上的窗口。
这可能是Msgbox()或运行时错误弹出窗口。标记无人参与执行时,运行时错误将记录到Windows事件日志中。
保留在内存中可防止IIS(或主机)立即释放您的DLL。根据您的主机设置,DLL将保留在内存中并重新使用。一些主机(例如IIS)将在一段时间后释放DLL。
另请参阅:您可以在最新版本的Msvbvm60.dll中配置“无人参与执行”选项和“保留在内存中”选项。
您必须打开无人值守
执行选项和保留在
编译前的内存选项
托管Microsoft Visual Basic
Windows 6.0企业版
组件(Microsoft ActiveX DLL)
多线程环境,例如
微软交易服务器
(Mtx.exe),Internet信息
服务(Inetinfo.exe),COM +
(Dllhost.exe)和Microsoft SQL
Server 7.0或SQL Server 2000
(Sqlservr.exe)。但是,您可能没有
知道组件是否要
在这样的环境下使用
可能会忘记打开无人值守
执行选项和保留在
内存选项。为了解决这个问题
问题,最新版本
Visual Basic运行时(Msvbvm60.dll)
引入了允许的新功能
您打开无人值守
执行选项和保留在
运行时的内存选项。
并且:Visual Basic 6.0 ActiveX组件的线程问题
MSVBVM60.DLL内部的访问冲突。
客户端进入死锁状态。您可能会看到这两个症状,如果
基本ActiveX DLL托管在
多线程环境,用于
例如IIS,MTS或多线程
客户和保留在内存中
选项未启用。
并且,当然:Visual Basic参考“常规”选项卡(“项目属性”对话框)
无人参与执行表示该项目旨在运行
无需用户交互。无人值守
项目没有界面元素。
任何运行时功能,例如
通常导致用户的消息
交互被写入事件
日志。
保留在内存中将项目保留在内存中。但是,有一个
绩效成本:保留的项目
直到
进程终止。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。