CoreWCF服务转换后exe无法作为Windows服务启动问题求助
CoreWCF 宿主转换后无法作为Windows服务启动(错误1053)
我已将WCF ServiceHost转换为CoreWCF,但生成exe文件后无法将其作为Windows服务运行。尝试通过代码安装未成功,手动使用SC Create命令安装后,启动服务时报错:
Windows无法在本地计算机启动Test服务。错误1053:服务未及时响应启动或控制请求。
旧版WCF(System.ServiceModel)生成的exe可正常安装并作为服务启动,特此求助。
宿主创建代码
public WebApplication CreateHost() { var builder = WebApplication.CreateBuilder(); builder.Services.AddServiceModelServices(); builder.Services.AddServiceModelMetadata(); builder.Services.AddSingleton<IServiceBehavior, UseRequestHeadersForMetadataAddressBehavior>(); var app = builder.Build(); app.UseServiceModel(serviceBuilder => { serviceBuilder.AddService<MaintenanceService>(); serviceBuilder.AddServiceEndpoint<TestService, ITestService>(TestSettings.BINDING, TestSettings.ADDRESS); serviceBuilder.ConfigureServiceHostBase<ITestService>(serviceHost => { var behavior = new ServiceBehaviorAttribute(); behavior.InstanceContextMode = InstanceContextMode.Single; behavior.ConcurrencyMode = ConcurrencyMode.Multiple; serviceHost.Description.Behaviors.Add(behavior); }); }); app.StartAsync(); return app; } public static class TestSettings { public const string SERVICE_NAME = "Test"; public const string ADDRESS = "net.pipe://localhost/test/maintenance"; public static readonly Binding BINDING = new NetNamedPipeBinding(NetNamedPipeSecurityMode.None) { ReceiveTimeout = TimeSpan.MaxValue, CloseTimeout = TimeSpan.MaxValue, SendTimeout = TimeSpan.MaxValue }; }
TestSettings同时被ServiceModel客户端调用
尝试的服务安装代码
var path = @"Dir" var p = new Process(); p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; p.StartInfo.UseShellExecute = true; p.StartInfo.RedirectStandardOutput = false; p.StartInfo.WorkingDirectory = path; p.StartInfo.FileName = path + "\Test.exe"; p.StartInfo.Verb = "runas"; p.StartInfo.Arguments = "-install"; await Task.Run(() => { p.Start(); p.WaitForExit(); });
内容的提问来源于stack exchange,提问作者rumel
相关产品推荐
相关产品推荐

