New*_*rth 14 c# windows-services
我有一个由C#创建的网站,用于在服务器中启动服务.
我MyService
用这个创建了一个名为的服务:
instsrv MyService %systemroot%\system32\srvany.exe
Run Code Online (Sandbox Code Playgroud)
然后我使用以下代码来调用它:
ServiceController service = new ServiceController("MyService");
try
{
service.Start();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
Run Code Online (Sandbox Code Playgroud)
但当我访问该网站并触发此事件时,它会提示我
Cannot open <MyService> service on computer '.'
是因为安全性还是许可问题?任何有明确步骤的指南都非常感谢.
我实际上已经解决了顶层场景的问题。
这就是 IIS 和 services.msc 中所需要的
另一方面,MAC地址仍然会有错误。
所以,我们需要一个可以由machineKey Generator生成的。
需要将生成的machineKey粘贴到下面的标签处。
然后复制下面引用的整个块并将其粘贴到Web.config
<pages buffer="false"
enableViewState="false"
enableSessionState="false"
enableViewStateMac="false"
validateRequest="false"
enableEventValidation="false"
viewStateEncryptionMode ="Never"/>
<machineKey
validationKey="8FCCB821044C5174C551129400F278B5629C64EAC195046DA5FE608EF418913C1139636E13FE 9F8C35AD3C10C394CAC1D9CEBB8B6BDA018165E91136B1AADBE1"
decryptionKey="3F260119F4CC0A0DD8C6B4979C70644A0ED2DD19B3ADB00F85FB7C83634FC544"
validation="SHA1"
decryption="AES"
/>
Run Code Online (Sandbox Code Playgroud)
然后问题就会得到解决,也许你们面临的情况可能有所不同,但我希望它可以帮助别人,因为我在这很长一段时间内挣扎。
此外,我使用此代码,因此在启动和停止创建的服务时不会发生冲突。
if (service.Status == ServiceControllerStatus.Stopped)
{
try
{
service.Start();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
else
{
try
{
service.Stop();
service.Start();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
祝你好运,谢谢你们的帮助。
参考:
http://www.csharp-examples.net/restart-windows-service/
http://forums.asp.net/t/906759.aspx/3/10