【问题标题】:dotNet Core 2 Console App - Error 1053: The service did not respond in a timely fashiondotNet Core 2 控制台应用程序 - 错误 1053:服务未及时响应
【发布时间】:2018-03-27 19:44:25
【问题描述】:

首先,向大家道歉。我知道有多个关于此错误的帖子。我没有找到任何与 dotNet Core 2 相关的链接。请指点我。

我只使用 Main 方法创建了一个简单的 dotNet Core 2 控制台应用程序。我可以将此应用程序发布为可移植的目标运行时,它会在输出文件夹中创建相关的 DLL 文件。

服务创建成功后,在我的本地机器上无法启动服务,并抛出上面提到的错误“错误1053:服务没有及时响应启动或控制请求”

  • 我确保我构建并发布为“版本”。
  • 我确保当我从命令提示符运行“dotnet ConsoleApplicationService.dll”时,应用程序会按预期运行。
  • 我确保从已发布的文件夹中打开了命令提示符并运行了以下代码:

    sc create "myDev Console Service" binpath="C:\inetpub\wwwroot\myDev.ConsoleApplicationService\ConsoleApplicationService.dll"

这是我的环境:

Microsoft Windows 8.1 Enterprise Visual Studio Professional 2017
版本 15.5.7 Microsoft .Net Framework 版本 4.7.02558

程序.cs

class Program
{
    static void Main(string[] args)
    {
        var fileName = Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, "log.txt");

        File.AppendAllText(fileName, "Hello, I am starting" + "\n");

        Console.WriteLine(" _____________________________________________________________________________");
        Console.WriteLine("|                Test Console Application as a Service                        |");
        Console.WriteLine("|-----------------------------------------------------------------------------|");
        Console.WriteLine("|                Version      : 1.0.0                                         |");
        Console.WriteLine("|                Created by   : S. Govindsamy                                 |");
        Console.WriteLine("|                Created on   : 20 Mar 2018                                   |");
        Console.WriteLine("|                Last updated :                                               |");
        Console.WriteLine("|_____________________________________________________________________________|");
        Console.WriteLine("");
        Console.WriteLine("");
        Console.WriteLine($"dotNet Version: {Environment.Version}");
        Console.WriteLine(DateTime.Now.ToString("dd MMM yyyy HH:mm:ss") + "..Started");
        Console.WriteLine("Checking to see if this is working ... press any key to exit...");
        File.AppendAllText(fileName, "Hello, I have written text to console ..." + "\n");
        Console.ReadLine();

        File.AppendAllText(fileName, "Hello, I am ending now ..." + "\n");

    }
}

ConsoleApplication.csproj

   <Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <RuntimeIdentifiers>win7-x64;win8-x64;win81-x64;win10-x64;osx-x64</RuntimeIdentifiers>
    <StartupObject>ConsoleApplicationService.Program</StartupObject>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Extensions.PlatformAbstractions" Version="1.1.0" />
    <PackageReference Include="ServiceProcess.Helpers" Version="0.9.1.9" />
  </ItemGroup>

</Project>

【问题讨论】:

    标签: windows-services console-application .net-core-2.0


    【解决方案1】:

    确保您的服务已启用允许服务与桌面交互选项。 要启用此选项,请按以下步骤操作:

    1. 在“服务”工具中,单击要启动的服务,然后单击属性
    2. 右键单击登录选项卡,然后单击以选中允许服务与桌面交互复选框。
    3. 点击确定退出属性对话框。

    【讨论】:

    • 我现在已经尝试了这些步骤。不幸的是,它并没有解决问题。你能用我的代码复制吗?
    【解决方案2】:

    我设法找到了一种方法来完成这项工作并启动我的服务。我遵循了 Peter Kottas 创建的微服务架构库,如果您的控制台应用程序是 dotNet Core 2 中的代码,这绝对是要走的路。

    请看 GitHub 上的链接:https://github.com/PeterKottas/DotNetCore.WindowsService

    【讨论】:

      猜你喜欢
      • 2013-12-20
      • 1970-01-01
      • 2023-01-13
      • 2021-09-11
      • 1970-01-01
      • 2018-02-16
      • 2011-03-28
      • 2014-08-05
      • 2011-01-05
      相关资源
      最近更新 更多