Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 作为Windows服务托管的.net core 3.1 Web API不显示页面_C#_.net Core_Windows Services - Fatal编程技术网

C# 作为Windows服务托管的.net core 3.1 Web API不显示页面

C# 作为Windows服务托管的.net core 3.1 Web API不显示页面,c#,.net-core,windows-services,C#,.net Core,Windows Services,我正在尝试将windows服务3.1作为windows服务托管。然而,我不断得到的页面“这个网站无法访问” 如果我运行部署在IIS中的应用程序,一切都会完美运行 net内核也有angular 8客户端应用程序 Program.CS publicstaticvoidmain(字符串[]args) { CreateHostBuilder(args.Build().Run(); } 公共静态IHostBuilder CreateHostBuilder(字符串[]args)=> Host.CreateD

我正在尝试将windows服务3.1作为windows服务托管。然而,我不断得到的页面“这个网站无法访问”

如果我运行部署在IIS中的应用程序,一切都会完美运行

net内核也有angular 8客户端应用程序

Program.CS

publicstaticvoidmain(字符串[]args)
{
CreateHostBuilder(args.Build().Run();
}
公共静态IHostBuilder CreateHostBuilder(字符串[]args)=>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder=>
{
webBuilder.UseStartup();
}).ConfigureWebHost(配置=>
{
config.useURL(“http://*:9095/”;
}).UseWindowsService();
Startup.CS

public void配置服务(IServiceCollection服务)
{
services.AddControllersWithViews();
//在生产中,角度文件将从此目录中提供
services.AddSpaStaticFiles(配置=>
{
configuration.RootPath=“ClientApp/dist”;
});
}
public void配置(IApplicationBuilder应用程序、IWebHostEnvironment环境)
{
if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
其他的
{
app.UseExceptionHandler(“/Error”);
}
app.UseStaticFiles();
如果(!env.IsDevelopment())
{
app.UseSpaStaticFiles();
}
app.UseRouting();
app.UseEndpoints(端点=>
{
endpoints.MapControllerRoute(
名称:“默认”,
模式:“{controller}/{action=Index}/{id?}”);
});
app.UseSpa(spa=>
{
spa.Options.SourcePath=“ClientApp”;
if(env.IsDevelopment())
{
spa.UseAngularCliServer(npmScript:“启动”);
}
});
}
我能够发布这个项目,创建一个windows服务并启动它

用于创建服务的命令:

**sc create MyWinService binPath=“D:\MyWinService\bin\Release\netcoreapp3.1\win-x64\MyWinService.exe”

[SC]CreateService成功**

并从msc.service启动服务

然后访问URL:http://localhost:9095/没有给我任何结果


您安装了错误的EXE文件

sc create MyWinService binPath="D:\MyWinService\bin\Release\netcoreapp3.1\win-x64\MyWinService.exe
应该是

sc create MyWinService binPath="D:\MyWinService\bin\Release\netcoreapp3.1\publish\MyWinService.exe

D:\MyWinService\bin\Release\netcoreapp3.1\win-x64不包含ClientApp文件夹

请在防火墙中添加一条规则,以允许使用给定端口访问此服务。

是否尝试在事件查看器、应用程序日志文件或通过附加到应用程序进程中检查此错误的日志?应用程序访问文件时可能会出现问题,或者windows服务主机的配置设置丢失。是的,此配置在我的计算机上工作。如果尚未启用日志记录,则需要启用日志记录,并检查事件查看器,如@SKorolchuk所说。我为我的测试注释掉了所有SPA内容,但我能够使用托管服务从浏览器中访问控制器端点。这个配置隐藏了一些错误,比如疯狂的顺便说一句,当某些东西出现故障时,它并不明显。或者,你可以从发布目录运行MyWinService.exe,在控制台中查看错误。大家好,我看起来必须在angular.json中添加一些特殊情况