- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
@Marc Gravell 给出了一个很好的例子来说明如何安装 Windows 服务 here .我去实现了它,一切都很好。
然后我重新启动了我的电脑...当我尝试安装时突然开始出现安全异常!我收到 SecurityException
:“不允许请求的注册表访问”。我想也许问题是从重启开始的,所以就像动画片中的第二击头部可以治愈失忆症一样,我再次尝试重启......但事实证明生活并不像动画片...... :(
好的,所以我用谷歌搜索了这个问题,并找到了将注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog 的权限授予我的网络服务的建议。那也没用。我把全部权利给了每个人——欢呼!我现在得到一个不同的异常(exception)! InvalidOperationException
:“无法在计算机 '.' 上打开服务控制管理器。此操作可能需要其他权限。” (内部异常是 Win32Exception
: "Access is denied"。)嗯,对不起?我正在尝试在本地计算机上安装! “计算机‘.’”在那里做什么?
这非常令人沮丧,因为正如我所说,昨天它运行良好,而今天一切都崩溃了,代码库没有任何明显的变化。
这是我执行安装的代码(从 Marc Gravell 的示例中复制和改编):
using (var inst = new AssemblyInstaller(typeof(MyNamespace.Program).Assembly, new string[] { })) {
IDictionary state = new Hashtable();
inst.UseNewContext = true;
try {
if (uninstall) {
inst.Uninstall(state);
} else {
inst.Install(state);
inst.Commit(state);
}
} catch {
try {
inst.Rollback(state);
} catch { }
throw;
}
}
安装程序代码是:
[RunInstaller(true)]
public sealed class MyServiceInstallerProcess : ServiceProcessInstaller {
public MyServiceInstallerProcess() {
this.Account = ServiceAccount.NetworkService;
}
}
[RunInstaller(true)]
public sealed class MyServiceInstaller : ServiceInstaller {
public MyServiceInstaller() {
this.Description = "My service desc";
this.DisplayName = "My service name";
this.ServiceName = "My service name";
this.StartType = ServiceStartMode.Automatic;
}
}
这里可能有什么问题?为什么事情突然开始变得困惑,之前它们运行良好?
最佳答案
以管理员身份/提升权限运行您的安装程序。让每个人都可以访问系统注册表项和其他东西是非常错误的。
关于c# - 使用 AssemblyInstaller 安装 Windows 服务时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4561556/
我想通过 example. 以编程方式安装 Windows 服务 这是代码片段。 private static AssemblyInstaller GetInstaller() { Assem
我正在使用以下代码安装服务。 string[] commandLineOptions = new string[0]; System.Configuration.Install.AssemblyIns
@Marc Gravell 给出了一个很好的例子来说明如何安装 Windows 服务 here .我去实现了它,一切都很好。 然后我重新启动了我的电脑...当我尝试安装时突然开始出现安全异常!我收到
是否可以通过从 C# 代码调用 assemblyInstaller.Install 来安装用 C++(使用 CreateService WINAPI)编写的 Windows 服务。这是我正在谈论的 A
我是一名优秀的程序员,十分优秀!