这不是this post的副本,因为我已经在其中尝试了推荐的解决方案。
我一直在尝试将C#/。netCore 3.0 / Kestrel作为服务启动。
在努力使我的应用作为服务启动后,我遵循了这些instructions来创建一个新的exe,并得到了相同的结果。
发布,添加服务并尝试从cmd,powershell或服务界面启动服务后,系统提示我以下消息:
Windows无法在本地计算机上启动SomeWorker服务。 错误1053:服务未响应启动或控制 及时提出要求。
在调查系统事件日志时,我只看到一个通用的:
由于以下错误,myWorker服务无法启动: 该服务未及时响应启动或控制请求。
当我运行exe /控制台时,它可以正常启动,没有任何问题。
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
// TODO : What is IdToken
.requestEmail()
.build();
答案 0 :(得分:1)
问题是未将Visual Studio设置为将服务部署为独立的。
在项目属性中设置此选项后,一切正常。
答案 1 :(得分:0)
不确定是否有帮助,我遇到了同样的问题。归结到我的CreateHostBuilder方法中:
host.ConfigureAppConfiguration(
(hostContext, config) =>
{
config.SetBasePath(Directory.GetCurrentDirectory());
config.AddJsonFile("appsettings.json", false, true);
}
);
事实证明,不再需要上述操作,因为调用CreateDefaultBuilder将设置基本路径并添加appsettings.json。这是我的CreateHostBuilder现在的样子(可以正常工作):
var host = Host.CreateDefaultBuilder(args)
.UseWindowsService()
.ConfigureLogging(loggingBuilder =>
{
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
var logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();
loggingBuilder.AddSerilog(logger, dispose: true);
})
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<SrtLmcoMaximoSyncWorker>();
});
return host;