无人值守执行可防止您的 VB6 二进制文件显示交互式对话框,即您的 Web 客户端无法看到或与之交互的服务器上的窗口。
这可能是 Msgbox() 或运行时错误弹出窗口。标记无人参与执行时,运行时错误将记录到 Windows 事件日志中。
保留在内存中可防止 IIS(或您的主机)立即释放您的 DLL。根据您的主机设置,DLL 将保留在内存中并重复使用。一些主机(如 IIS)会在一段时间后释放 DLL。
另请参阅:您可以在最新版本的 Msvbvm60.dll 中配置 Unattended Execution 选项和 Retained In Memory 选项
您必须在编译前打开 Unattended Execution 选项和 Retained In Memory 选项,以便在多线程环境中托管 Microsoft Visual Basic Enterprise Edition for Windows 6.0 组件 (Microsoft ActiveX DLL),例如 Microsoft Transaction Server (Mtx.exe) 、Internet 信息服务 (Inetinfo.exe)、COM+ (Dllhost.exe) 和 Microsoft SQL Server 7.0 或 SQL Server 2000 (Sqlservr.exe)。但是,您可能不知道组件是否会在这样的环境中使用,或者您可能忘记打开无人参与执行选项和保留在内存中选项。为了解决这个问题,最新版本的 Visual Basic 运行时 (Msvbvm60.
并且:Visual Basic 6.0 ActiveX 组件的线程问题
- MSVBVM60.DLL 内部访问冲突。
- 客户端进入死锁状态。如果 Visual Basic ActiveX DLL 承载在多线程环境(例如 IIS、MTS 或多线程客户端)中,并且未启用 Retain In Memory 选项,您可能会看到这两种症状。
当然还有:Visual Basic 参考常规选项卡(项目属性对话框)
无人参与的执行 表示项目旨在在没有用户交互的情况下运行。无人值守的项目没有界面元素。任何运行时功能(例如通常会导致用户交互的消息)都将写入事件日志。
Retained in Memory将项目保留在内存中。但是,存在性能成本:保留在内存中的项目在进程终止之前不会被卸载。