.NET Core webapi 从零开始在IIS上面发布后端接口

原因

.NET core是以后.NET未来的趋势,虽然我感觉Java在web后端的主导地位10年内不会动摇,因为Java占据了先发优势。

不过C#的特点就是,简单,好用,全栈。C#语法糖很舒服,C#能写后端,桌面端,还有Unity关门大弟子支持。外挂个Vue+uniapp。可以说是全栈开发了。

对了,我最近研究了一下C#怎么调用python,已经成功了。就是通过启动python脚本,将参数输进去,然后监听python的运行结果打印。

C# 如何调用python,避免重复造轮子

环境配置

将 ASP.NET Core 应用发布到 IIS 微软官方文档

windows环境

在这里插入图片描述

.NET Core安装

开发端安装

.NET core 下载安装

在这里插入图片描述

我推荐用.NET core 6.0版本,虽然都快过过期了

在这里插入图片描述

在这里插入图片描述

编译环境需要安装
.NET Core 6.0 编译开发环境SDK安装

服务端安装

服务端要装运行环境
.NET Core 6.0 运行环境安装

新建ASP.NET项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在Program文件中修改代码

using Microsoft.AspNetCore.Builder;
using Microsoft.OpenApi.Models;
using System.Reflection;

var builder = WebApplication.CreateBuilder(args);
var MyPolicy = "MyPolicy";

/// <summary>
/// 配置跨域
/// </summary>
builder.Services.AddCors(options =>
{
    options.AddPolicy(MyPolicy, policy =>
    {
        policy.AllowAnyHeader().AllowAnyOrigin().AllowAnyMethod();
    });
});
// Add services to the container.

builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();


//添加swagger接口配置
builder.Services.AddSwaggerGen(options =>
{
    options.SwaggerDoc("v1", new OpenApiInfo
    {
        Version = "v1",
        Title = "API标题",
        Description = $"API描述,v1版本"
    });
    var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
    //IncludeXmlComments 第二参数 true 则显示 控制器 注释
    options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename), true);
});



var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{

}
app.UseSwagger();
app.UseSwaggerUI();
//自动重定向到swgger文件
app.UseStatusCodePagesWithRedirects("/swagger/index.html");
app.UseCors(MyPolicy);
app.UseAuthorization();

app.MapControllers();

app.Run();

选择生成API文档
在这里插入图片描述

新建一个控制器
在这里插入图片描述
在这里插入图片描述

输入代码

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

namespace WebApplication1.Controllers
{
    /// <summary>
    /// 测试类
    /// </summary>
    [Route("api/[controller]/[action]")]
    [ApiController]
    public class TestController : ControllerBase
    {
        /// <summary>
        /// WebApi测试端口
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public string HttpTest()
        {
            return "Hello WebApi!";
        }
    }
}

运行
在这里插入图片描述
在这里插入图片描述

运行成功!

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

选择设置
在这里插入图片描述
在这里插入图片描述
部署模式:

  • 框架依赖:
  • 独立:
    • 将运行环境放在生成的文件夹里面
    • 编辑的文件会大80MB

这里建议新手选择独立发布

在这里插入图片描述
这样就能发布到IIS上面了

在这里插入图片描述

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IIS上部署ASP.NET Core Web API项目及Swagger可以按照以下步骤进行: 1. 首先,我们需要确保已经在本地系统上安装了ASP.NET Core Runtime和ASP.NET Core Hosting Bundle,以便在IIS中运行ASP.NET Core应用程序。 2. 在Visual Studio中,打开你的ASP.NET Core Web API项目。确保项目已经设置为IIS Express作为本地开发服务器。 3. 在项目根目录下的`Properties`文件夹中找到`launchsettings.json`文件,检查并确保该文件中已经配置了`applicationUrl`为`http://localhost:{port}/`,其中`port`为你希望的端口号。 4. 在Visual Studio的顶部菜单中,找到 `Build` -> `Publish {YourProjectName}`,选择发布目标为`Folder`,点击 `Publish`。 5. 在弹出的窗口中选择一个输出文件夹,用于存储发布项目的文件。 6. 打开发布文件夹,在该文件夹中应该有一个名为`web.config`的文件。双击打开该文件,确保其中有以下代码片段: ```xml <aspNetCore processPath="dotnet" arguments=".\{YourProjectName}.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" /> ``` 7. 打开IIS管理器,右键点击`Sites`节点,选择`Add Website`。填写网站名称以及物理路径为刚刚发布项目的目录。 8. 对于应用程序池,选择一个合适的.NET CLR版本和托管管道模式(例如:.NET CLR版本为No Managed Code,托管管道模式为集成)。 9. 在网站的右侧,找到`Authentication`,禁用匿名身份验证并启用Windows身份验证。 10. 重新启动IIS。 11. 现在,我们可以在浏览器中访问`http://localhost:{port}`,应该能够看到你的ASP.NET Core Web API已经在IIS上成功部署。 12. 最后,要在部署的项目中添加Swagger,可以通过NuGet包管理器,添加`Swashbuckle.AspNetCore`包。 13. 在`Startup.cs`文件的`ConfigureServices`方法中,添加以下配置: ```csharp services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "API", Version = "v1" }); }); ``` 14. 在`Startup.cs`文件的`Configure`方法中,添加以下代码: ```csharp app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "API v1"); }); ``` 15. 重新发布并重新启动IIS,现在你的ASP.NET Core Web API应该在IIS上部署并且通过Swagger可以浏览和调用你的API接口。 以上就是在IIS上部署ASP.NET Core Web API项目及Swagger的步骤。请注意,确保按照正确的顺序执行每一步,并根据自己的项目配置进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值