我正在尝试将Windows服务3.1托管为Windows服务。但是,我一直将网页显示为“无法访问此网站”
如果我运行在IIS中部署的应用程序,则一切正常。
.net Core也具有angular 8客户端应用程序。
Program.CS
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
}).ConfigureWebHost(config =>
{
config.UseUrls("http://*:9095/");
}).UseWindowsService();
Startup.CS
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
// In production, the Angular files will be served from this directory
services.AddSpaStaticFiles(configuration =>
{
configuration.RootPath = "ClientApp/dist";
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
}
app.UseStaticFiles();
if (!env.IsDevelopment())
{
app.UseSpaStaticFiles();
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller}/{action=Index}/{id?}");
});
app.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment())
{
spa.UseAngularCliServer(npmScript: "start");
}
});
}
我能够发布项目并创建Windows服务并启动它。
用于创建服务的命令:
** sc创建MyWinService binPath =“ D:\ MyWinService \ bin \ Release \ netcoreapp3.1 \ win-x64 \ MyWinService .exe”
[SC] CreateService成功**
然后从msc.service启动服务
在访问URL之后: http:// localhost:9095 / 没有任何结果
答案 0 :(得分:0)
您正在安装错误的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文件夹
答案 1 :(得分:0)
在防火墙中添加一条规则,以允许使用给定的端口访问此服务。