windows下使用net6创建自己的webapi服务

第一步,创建WebApi项目。请参考以下地址创建。

https://www.cnblogs.com/JOJJO/p/16602197.html 

第二步,指定发布后的运行端口
添加appsettings.Production.json文件,录入以下内容。测试期间的端口直接在Properties\launchSettings.json文件中修改就好了。该文件可以修改很多内容

复制代码
{
  "Kestrel": {
    "Endpoints": {
      "Http": {
        "Url": "http://*:8076"
      }
    }
  }
}
复制代码

2023年9月12日补充:以前写成下面的形式。结果使用localhost可以访问。外部的电脑就无法访问了。需要改为*

 "Url": "http://[::]:8076"

 

第三步,添加winservice支持,以注册为windows服务。参考以下文章

https://www.cnblogs.com/manupstairs/p/16083616.html

其实很简单

1.用nuget添加引用(安装)Microsoft.Extensions.Hosting.WindowsServices

2.修改Program.cs

复制代码
using Microsoft.Extensions.Hosting.WindowsServices;
 
var options = new WebApplicationOptions
{
    Args = args,
    ContentRootPath = WindowsServiceHelpers.IsWindowsService() ? AppContext.BaseDirectory : default
};
 
var builder = WebApplication.CreateBuilder(options);
 
// Add services to the container.
builder.Services.AddRazorPages();
 
builder.Host.UseWindowsService();
 
var app = builder.Build();
复制代码

至此,该exe既可以做为Console程序,也可以注册为windows服务。以下就是正常的注册过程

使用管理员打开命令行窗口。录入以下命令。D:\MyWebApiApp\TestWebApi.exe是我的程序名,你需要按你的实际情况修改。注意创建时需要使用全路径。

sc create "kevinApi2" binPath="d:\MyWebApiApp\TestWebApi.exe"

安装成功的话,就可以在“服务”查看我们的程序。如果忘记写全路径,服务的可执行文件的路径是空的。没有可执行文件的服务是无法运行的。

 

 

 第四步,开发与生产环境的切换。

服务发布的初期,我们需要与他人联调,希望使用Swagger的文档提示。我们可以在这个期间调整运行在开发模式。

 

 

 可以在命令行运行以下命令

setx ASPNETCORE_ENVIRONMENT "Development"

运行后,需要关闭命令行,重新打开。我们也可以在“环境变量”中自己修改。以下是命令行运行后的效果。我们一般会在系统变量里加,命令是加在了用户变量。

 

 

命令行窗口打开的时候会读入环境变量,运行期间如果修改系统的环境变量,这些已打开的命令行窗口不会有效果。所以在修改后,想要生效必须重新打开一个新的命令窗口。

设置为生产环境

setx ASPNETCORE_ENVIRONMENT "Prodction"

或参考其他文章。https://www.cnblogs.com/duanweishi/p/8976161.html

 

本文只发布的博客园,没有允许请勿转载。

 

posted @   生命体验之kevin-Y  阅读(1325)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示