NTSVC.ocx启动出错
开机时候显示
部件“ntsvc.ocx”或其附件之一不能正确注册:一个文件丢失或无效
请问是什么意思啊,是怎么造成的呢?
该怎么解决?
谢谢!!!
参考答案:是VB组件
INFO: 运行 VisualBasic 应用程序作为 WindowsNT 服务
察看本文应用于的产品
注意:这篇文章是由无人工介入的自动的机器翻译系统翻译完成。这些文章是微软为不懂英语的用户提供的, 以使他们能够理解这些文章的内容。微软不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的使用所引起的任何直接的, 或间接的可能的问题负责。
文章编号 : 175948
最后修改 : 2006年11月23日
修订 : 3.1
本页
概要
更多信息
属于稳定行为
为什么不稳定这是
变通办法
其他技术
参考
概要
Microsoft 目前不建议, 和不支持, 运行 VisualBasic 应用程序如 MicrosoftWindowsNT、 Windows 2000 和 WindowsXP 服务因为应用程序可能出现稳定行为当安装并运行 MicrosoftWindows 服务 Microsoft Visual Basic 4.0 不支持回调也是线程安全 Visual Basic 4.0。 在 Visual Basic 5.0 和 6.0 处于单元模型线程安全, 没有对编组回 VisualBasic 程序通过 AddressOf 运算符调用没有办法。 此行为是设计使然。 本文包含一些示例对此稳定行为, 不稳定和可能解决的可能原因的简短说明。 Microsoft 提供编程示例仅, 用于说明目的不附带任何明示或暗示, 包括但不限于, 暗示保证了适销性和/或用于特定目的适用性,。 本文假设您是熟悉正在演示编程语言和工具用于创建和调试过程。 Microsoft 支持专家可以帮助解释了某个特定过程, 功能但是它们不会修改这些示例以提供添加功能或构建过程以满足您特定需要。 如果您具有有限编程经验, 要联系 Microsoft 认证合作伙伴或 Microsoft 收费咨询行 (800) 936 - 5200 上。 有关 Microsoft 认证伙伴, 请访问下列 Microsoft Web 站点:
https://partner.microsoft.com/global/*********** (https://partner.microsoft.com/global/***********)
有关如何联系 Microsoft, 有关可支持选项和请访问以下 Microsoft 网站:
;en-us;cntactms)
回到顶端
更多信息
属于稳定行为
1. 当 MicrosoftVisualBasic 应用程序显示一个对话框, 然后终止, .EXE 文件的名称都不会出现在服务 Applet 对话框, 但是后面灰色矩形 VisualBasic 应用程序对话框保留用户界面上。
2. 从服务, MicrosoftVisualBasic 应用程序启动时 .EXE 文件名称简要出现在服务 Applet 对话框但 VisualBasic 应用程序启动似乎不。
3. MicrosoftVisualBasic 应用程序是 OLE 服务器将返回只读属性成功并且, 当 OLE 服务器终止, .EXE 文件名称从服务 Applet 对话框消失。 尚未, 随后尝试实例化该 OLE 服务器失败有 OLE 自动化错误或将挂起服务进程。
4. 因为是由线程不是由 VisualBasic 创建调用回调函数出现一条错误消息。 有些 API 函数使用可用线程模型。 VisualBasic 只支持单元模型 threads.For 其他信息有关此问题, 请单击文章编号, 以查看 Microsoft 知识库中相应:
198607 () PRB: 访问 VB 运行使用 AddressOf 中冲突
回到顶端
为什么不稳定这是
MicrosoftWindows 中服务是一个程序, 是作为控制台应用程序编写并运行操作系统运行时。 服务通常采用以提供功能如目录复制系统活动审核、 监视进程, 或通讯支持。
在 LocalSystem 帐户, 它是由系统进程使用预定义本地帐户服务登录到 MicrosoftWindowsNT、 Windows 2000 和 WindowsXP。
LocalSystem 帐户的上下文中运行服务继承这些特征: • 服务无法打开注册表项 HKEY _ CURRENT _ USER。
• 服务可打开注册表项 HKEY_LOCAL_MACHINE\SECURITY。
• 服务因为它具有没有凭据, 必须使用空会话连接有限对网络资源如共享和管道, 访问。
• 如果服务打开命令窗口并运行批处理文件, 用户可能达到 Ctrl+C 终止批处理文件和访问使用 LocalSystem 权限命令窗口。
• 与其他应用程序除非它们是使用 DACL, 它允许用户或组的用户访问或 NULL DACL, 允许任何人访问打开服务无法共享对象。 指定不等同于指定 NULL, NULL DACL 这意味着访问是只授予对应用程序与同一安全上下文。
• 服务需要任何超过简短片刻进行必要初始化程序可能需要创建另一个线程来同时处理主线程继续执行常见初始化。
按惯例, MicrosoftWindows 服务旨在为非交互式。 也就是说, 在大多数情况, 它们执行无需任何用户交互工作。 服务通常配置和使用控制面板中安装小程序控制。 这要求程序员, 添加代码以提供这些额外要求: • 报告警告和错误系统或应用程序日志中。 通常无法使用输出到屏幕上, 因为可能没有用户登录。
• 控制服务通过单独应用程序或控制面板小程序。 这包括实现用于您服务通信机制。
• 安装和从系统删除服务。
但是, 与 Microsoft Visual Basic 4.0, 可能性保持应用程序, 将最终投递处理错误对话框从其中将挂起 MicrosoftVisualBasic 应用程序服务进程。
无人参与 EXE 编译选项用 Microsoft Visual Basic 5.0 和 6.0 不解决意外对话框问题, 但仍然线程安全问题。 除非或直到程序使用 AddressOf 运算符 Visual Basic 5.0 和 6.0 是单元模型线程安全。 目前没有办法对编组回 Visual Basic 5.0 或 6.0 应用程序通过 AddressOf 运算符多次调用 VisualBasic。 因此, 建议不要安装 MicrosoftVisualBasic 应用程序作为 Microsoft Windows NT Service。
回到顶端
变通办法
Microsoft 技术文章, NT 服务 ": An OLE 控制对于创建 WindowsNT 服务中 Visual Basic, " 描述 OLE 控件, 使开发人员能够创建 VisualBasic 应用该函数作为 MicrosoftWindowsNT 服务。 与 NTService 控件, 您可以安装服务、 登录事件, 并启动、 停止、 暂停, 和继续事件响应。 可在以下 Web 站点找到本文:
)
注意 : Microsoft 不建议, 并且不支持运行 VisualBasic 应用程序如 MicrosoftWindowsNT、 Windows 2000 和 WindowsXP 服务, 甚至当您使用 Ntsrv.ocx,。
回到顶端
其他技术
开发人员有望困难与要采用 Microsoft 技术如 ODBC、 DCOM、 OLE 自动化和 MicrosoftVisualBasic 中编写 Microsoft Windows 服务中 DAO 工作。 出于此原因, 和出于这些原因已说明, Microsoft 建议开发人员在 Microsoft WindowsNT 服务编写在 Microsoft Visual Basic 避免使用这些技术。
回到顶端
参考
有关详细信息, 请参阅 MSDN 上以下目录:
\Platform SDK\Windows 基础 Services\Executables\Services
有关详细信息, 请参阅到下面的书籍:
Francesco Balena Programming Microsoft Visual Basic 6.0 ( )MicrosoftPress 2001
有关其他信息, 请单击文章编号, 以查看 Microsoft 知识库中文章: 198607 () PRB: 访问运行时使用 AddressOf VB 中冲突
170883 () HOWTO: 使用 NTSVC.OCX 从 Visual Basic
150777 () INFO: 说明和工作原理是 OLE 线程模型
137890 () HOWTO: 创建用户定义服务
回到顶端
建议
查找注册表,删掉所有包含"ntsvc.ocx"的键值...........
或者在VB的安装盘里找找看有没有这个文件,拷到系统目录里
参考资料: