我有一个由C#创建的网站,用于在服务器中启动服务。
我使用以下方法创建了一个名为MyService
的服务:
instsrv MyService %systemroot%\system32\srvany.exe
然后我使用以下代码来调用它:
ServiceController service = new ServiceController("MyService");
try
{
service.Start();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
但是当我访问网站并触发此事件时,它会提示我
Cannot open <MyService> service on computer '.'
是否因为安全性或权限问题?任何有明确步骤的指南都非常感谢。
答案 0 :(得分:2)
使用iis(版本6及更高版本),使用应用程序池运行Web应用程序。 EAch应用程序池可以与特定用户(标识)一起运行,默认情况下是NETWORK SERVICE。将此用户添加到本地管理员是一个非常糟糕的主意。
可能的方法:
答案 1 :(得分:2)
我实际上解决了最重要的问题。
这些是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"
/>
然后问题就会得到解决,也许你们面临的情况可能会有所不同,但我希望它可以帮助某些人,因为我在这很长一段时间内都在挣扎。
此外,我使用此代码,因此在启动和停止创建的服务时不会发生冲突。
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);
}
}
祝你好运,谢谢你们的帮助。
REF:
http://www.csharp-examples.net/restart-windows-service/
http://forums.asp.net/t/906759.aspx/3/10
答案 2 :(得分:1)
嗨,我有同样的问题,给予我认为包括清洁工的所有团体的许可,它没有帮助我最终在我的网络配置中尝试了这一行
<identity impersonate="true" userName="Domainname\admin" password="123" />
答案 3 :(得分:1)
它可能会帮助有相关问题的人:
在我的服务器上,powershell命令行管理器失败并显示相同的错误消息。 这是因为,即使我以本地管理员身份登录,我也需要以管理员身份运行PowerShell环境(右键单击,以管理员身份运行)。