Я создаю проект asp.netcore с Visual Studio 2017. И я устанавливаю TopShelf из Nuget и добавляю код в Program.Main () ниже:
public static void Main(string[] args)
{
var rc = HostFactory.Run(x =>
{
x.Service<MainService>(s =>
{
s.ConstructUsing(name => new MainService(args));
s.WhenStarted(tc => tc.Start());
s.WhenStopped(tc => tc.Stop());
});
x.RunAsLocalSystem();
x.SetDescription("ASP.NETCoreTest");
x.SetDisplayName("ASP.NETCoreTest");
x.SetServiceName("ASP.NETCoreTest");
});
var exitCode = (int)Convert.ChangeType(rc, rc.GetTypeCode());
Environment.ExitCode = exitCode;
}
В MainService.cs:
public void Start()
{
Task.Factory.StartNew(() => this.StartExecuting(), TaskCreationOptions.LongRunning);
}
public void StartExecuting()
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
Stratup.cs по умолчанию.
Затем я запускаю IIS Express, и он может работать, показывая как (хотя это немного странно) (https://localhost:44345/):
Затем я добавляю RuntimeIdentifiers win7-x64 в PropertyGroup и публикую приложение в CMD:
dotnet publish -c Release -r win7-x64
Наконец, я устанавливаю ASP.NETCoreTest.exe и запускаюASP.NETCoreTest.exe, но он отображается как (https://localhost:44345/):
В управлении событиями, он говорит мне об ошибке:
Что мне делать? Пожалуйста, помогите мне, спасибо!
Обновление: если я выхожу из IIS Express, он показывает, что не может подключиться к этому сайту. Возможно, сайт следует открыть другим способом (Не https://localhost:44345/)?