Kri*_*s-I 92 .net c# wcf windows-services
当我尝试启动我在C#中创建的Windows服务时,我收到此错误:

我的代码到目前为止:
private ServiceHost host = null;
public RightAccessHost()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
host = new ServiceHost(typeof(RightAccessWcf));
host.Open();
}
protected override void OnStop()
{
if (host != null)
host.Close();
host = null;
}
Run Code Online (Sandbox Code Playgroud)
我通过授予帐户NETWORK SERVICE的权限解决了上述问题,但现在我有另一个问题:

服务无法启动.System.InvalidOperationException:服务'RightAccessManagementWcf.RightAccessWcf'具有零应用程序(非基础结构)端点.这可能是因为没有为您的应用程序找到配置文件,或者因为在配置文件中找不到与服务名称匹配的服务元素,或者因为在service元素中没有定义端点.System.ServiceModel.ServiceModel.ServiceModel.ServiceModel.ServiceModel.ServiceModel.ServiceModel.ServiceModel.ServiceModel.ServiceModel.ServiceModel.ServiceModel.ServiceModel. System.ServiceModel.Channels.CommunicationObject中的TimeSpan超时).
Jus*_*les 112
我意识到这篇文章已经过时了,但是没有明显的解决方案,我只是想介绍一下如何解决这个问题.
Error 5: Access Denied通过将输出目录的权限授予NETWORK SERVICE帐户来解决第一个错误.
Started and then stopped当出现故障时,第二个错误似乎是一个通用消息.检查事件查看器(特别是"Windows日志>应用程序")以获取真实的错误消息.
在我的例子中,它是app.config中糟糕的服务配置设置.
Mik*_*erk 24
计算机 - >管理 - >服务 - > [您的服务]属性.然后是带有帐户信息的选项卡.使用这些设置进行播放,例如使用管理员帐户运行服务.
这样做对我来说.
编辑:什么也可以,问题是,大多数服务都运行作为LOCAL SERVICE或LOCAL SYSTEM账户.现在,当您C:/my-admin-dir/service.exe使用这些帐户运行但不允许他们执行该目录中的任何内容时,您将获得error 5.因此,找到服务的可执行文件,RMB目录 - >属性 - >安全性,并确保运行该服务的帐户位于可以完全控制目录的用户列表中.
cmc*_*nty 18
这对我有用.
确保Path to executable指向实际可执行文件(右键单击服务 - >属性 - >常规选项卡).通过powershell(和sc.exe),您可以安装服务而无需指向可执行文件......咳嗽.
我收到此错误是因为我误读了此处接受的答案:Create Windows service from executable。
sc.exe create <new_service_name> binPath= "<path_to_the_service_executable>"
Run Code Online (Sandbox Code Playgroud)
对于<path_to_service_executable>,我使用的是可执行文件文件夹的路径,例如C:\Folder.
它需要是可执行文件的路径,例如C:\Folder\Executable.exe.
我得到了解决方案:
1. Go to local service window(where all services found)
2. Just right click on your service name:
3. click on "properties"
4. go to "log on" tab
5. select "local system account"
6. click "ok"
Run Code Online (Sandbox Code Playgroud)
现在您可以尝试启动该服务。
小智 5
在我的情况下,没有检查以下内容。
您的代码可能在不允许启动服务的用户的安全上下文中运行。
由于您使用的是 WCF,我猜测您处于网络服务的上下文中。
请参阅: http: //support.microsoft.com/kb/256299