You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 22:03:25