项目需要,写了一个接口,但是需要以服务的形式运行,但是不可以直接写服务(别问为什么,懒得问躺平吧!),需要放在某台机器上手持设备去访问,但是本机localhost以及127.0.0.1访问都没问题,唯独加上IP就无法访问!找问题!!
1.首先创建一个项目(WebApi) 基于.NetCore 5.0 或者更高
2.重点来了,以下这两个是必须引用的,超级重要!!
Microsoft.AspNetCore.Hosting.WindowsServices
Microsoft.Extensions.Hosting.WindowsServices
剩下的就看你的项目里需要什么了,比如swagger、第三方的ORM等等
3.
appsettings.json 灵活配置你想要的配置项
launchSettings.json 配置你的访问端口以及Url之类的-URL 重点啊
下图标记的就是打服务需要的
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args).UseWindowsService()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
4.然后用命令或者工具将生成的EXE 安装成服务
5.一般来说这个时候就结束了,浏览器一开直接访问launchSettings.json 里面设置的端口
例如 127.0.0.1:8888
但是你IP去访问的时候,哎挂掉了,但是localhost可以访问 ,奇怪了
请看下图,一定要写一下 UseUrls("http://*:8888")
UseUrls里面的值配在appsettings.json里面,或者想怎么写就怎写
大功告成了,内网同网段也可以能访问到了