所以在这里我再次遇到了另一个 MSDN 失败。像往常一样,我决定学习如何用 C# 编写 Windows 服务,并且由于许多教程提供的代码不完整或写得不好,我决定使用 MSDN。
我已遵循每一步,但我的服务将无法安装。
我正在关注的页面是:http: //msdn.microsoft.com/en-us/library/zt39148a (v=vs.110).aspx
我的代码是:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;
namespace WindowsService1
{
public partial class WindowsService1 : ServiceBase
{
public WindowsService1()
{
InitializeComponent();
if (!System.Diagnostics.EventLog.SourceExists("MySource"))
{
System.Diagnostics.EventLog.CreateEventSource(
"MySource", "MyNewLog");
}
eventLog1.Source = "MySource";
eventLog1.Log = "MyNewLog";
}
protected override void OnStart(string[] args)
{
eventLog1.WriteEntry("In OnStart");
}
protected override void OnStop()
{
eventLog1.WriteEntry("In onStop.");
}
protected override void OnContinue()
{
eventLog1.WriteEntry("In OnContinue.");
}
}
}
我已经进入开发人员命令提示符,cd 到包含我的 .exe 的目录(调试文件夹),我已经:
installutil WindowsService1.exe
并且也尝试过installutil.exe WindowsService1.exe
,但安装总是失败,并显示以下文本:
C:\Program Files (x86)\Microsoft Visual Studio 11.0>cd C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsService1\bin\Debug
C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsService1\bin\Debug>installutil WindowsService1.exe Microsoft (R) .NET Framework 安装实用程序版本 4.0.30319.32559 版权所有 (C) Microsoft Corporation。版权所有。
运行事务安装。
开始安装的安装阶段。查看日志文件的内容以了解 C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsService1\bin\Debug\WindowsService1.exe 的进度。该文件位于 C:\Users\Tommy\Documents\Visual Studio 2013\Projects\Wind owsService1\WindowsService1\bin\Debug\WindowsService1.InstallLog。安装程序集“C:\Users\Tommy\Documents\Visual Studio 2013\Projects\Windows sService1\WindowsService1\bin\Debug\WindowsService1.exe”。受影响的参数是:logtoconsole = logfile = C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService 1\WindowsService1\bin\Debug\WindowsService1.InstallLog 程序集路径 = C:\Users\Tommy\Documents\Visual Studio 2013\项目\WindowsService1\WindowsService1\bin\Debug\WindowsService1。
安装阶段发生异常。System.InvalidOperationException:无法在计算 r '.' 上打开服务控制管理器。此操作可能需要其他权限。引发内部异常 System.ComponentModel.Win32Exception 并显示以下错误消息:访问被拒绝。
安装的回滚阶段即将开始。查看日志文件的内容以了解 C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsService1\bin\Debug\WindowsService1.exe 的进度。该文件位于 C:\Users\Tommy\Documents\Visual Studio 2013\Projects\Wind owsService1\WindowsService1\bin\Debug\WindowsService1.InstallLog。回滚程序集“C:\Users\Tommy\Documents\Visual Studio 2013\Projects\Wind owsService1\WindowsService1\bin\Debug\WindowsService1.exe”。受影响的参数有:logtoconsole = logfile = C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService 1\WindowsService1\bin\Debug\WindowsService1.InstallLog 汇编路径 = C:
回滚阶段成功完成。
事务安装已完成。安装失败,已回滚。
C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsService1\bin\Debug>installutil WindowsService1 Microsoft (R) .NET Framework 安装实用程序版本 4.0.30319.32559 版权所有 (C) Microsoft Corporation。版权所有。
初始化安装时发生异常: System.IO.FileNotFoundException: 无法加载文件或程序集 'file:///C:\Use rs\Tommy\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsService1\b in\Debug\ WindowsService1' 或其依赖项之一。该系统找不到指定的文件..
C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsService1\bin\Debug>installutil WindowsService1.exe Microsoft (R) .NET Framework 安装实用程序版本 4.0.30319.32559 版权所有 (C) Microsoft Corporation。版权所有。
运行事务安装。
开始安装的安装阶段。查看日志文件的内容以了解 C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsService1\bin\Debug\WindowsService1.exe 的进度。该文件位于 C:\Users\Tommy\Documents\Visual Studio 2013\Projects\Wind owsService1\WindowsService1\bin\Debug\WindowsService1.InstallLog。安装程序集“C:\Users\Tommy\Documents\Visual Studio 2013\Projects\Windows sService1\WindowsService1\bin\Debug\WindowsService1.exe”。受影响的参数是:logtoconsole = logfile = C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService 1\WindowsService1\bin\Debug\WindowsService1.InstallLog 程序集路径 = C:\Users\Tommy\Documents\Visual Studio 2013\项目\WindowsService1\WindowsService1\bin\Debug\WindowsService1。
安装阶段发生异常。System.InvalidOperationException:无法在计算 r '.' 上打开服务控制管理器。此操作可能需要其他权限。引发内部异常 System.ComponentModel.Win32Exception 并显示以下错误消息:访问被拒绝。
安装的回滚阶段即将开始。查看日志文件的内容以了解 C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsService1\bin\Debug\WindowsService1.exe 的进度。该文件位于 C:\Users\Tommy\Documents\Visual Studio 2013\Projects\Wind owsService1\WindowsService1\bin\Debug\WindowsService1.InstallLog。回滚程序集“C:\Users\Tommy\Documents\Visual Studio 2013\Projects\Wind owsService1\WindowsService1\bin\Debug\WindowsService1.exe”。受影响的参数有:logtoconsole = logfile = C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService 1\WindowsService1\bin\Debug\WindowsService1.InstallLog 汇编路径 = C:
回滚阶段成功完成。
事务安装已完成。安装失败,已回滚。
C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsService1\bin\Debug>
它还将一个 INSTALLLOG 文件输出到调试目录中,其中包含(相同的信息):
运行事务安装。
开始安装的安装阶段。查看日志文件的内容以了解 C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsService1\bin\Debug\WindowsService1.exe 程序集的进度。该文件位于 C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsService1\bin\Debug\WindowsService1.InstallLog。
安装阶段发生异常。System.InvalidOperationException:无法在计算机“.”上打开服务控制管理器。此操作可能需要其他权限。引发内部异常 System.ComponentModel.Win32Exception 并显示以下错误消息:访问被拒绝。
安装的回滚阶段即将开始。查看日志文件的内容以了解 C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsService1\bin\Debug\WindowsService1.exe 程序集的进度。该文件位于 C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsService1\bin\Debug\WindowsService1.InstallLog。
回滚阶段成功完成。
事务安装已完成。
运行事务安装。
开始安装的安装阶段。查看日志文件的内容以了解 C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsService1\bin\Debug\WindowsService1.exe 程序集的进度。该文件位于 C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsService1\bin\Debug\WindowsService1.InstallLog。
安装阶段发生异常。System.InvalidOperationException:无法在计算机“.”上打开服务控制管理器。此操作可能需要其他权限。引发内部异常 System.ComponentModel.Win32Exception 并显示以下错误消息:访问被拒绝。
安装的回滚阶段即将开始。查看日志文件的内容以了解 C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsService1\bin\Debug\WindowsService1.exe 程序集的进度。该文件位于 C:\Users\Tommy\Documents\Visual Studio 2013\Projects\WindowsService1\WindowsService1\bin\Debug\WindowsService1.InstallLog。
回滚阶段成功完成。
事务安装已完成。
然后我回到 MSDN。要查看如果安装失败该怎么办,但我看到的是:
If the service installs successfully, installutil.exe will report success.
如果安装失败,没有关于如何处理的其他信息。
我在这上面花了几天时间,我已经学习了超过 8 个教程,所有这些教程都包含不完整或错误的代码(不起作用)。所以我最终决定再次信任 MSDN,但像往常一样,我想知道到底发生了什么。
我的用户帐户具有完整的读/写/执行权限,是管理员,我已检查计算机管理(> 服务和应用程序)并确认我的 Windows 服务未在此处列出。
现在我该怎么做?如何创建 Windows 服务(有效)?