IIS发布.net6 api+微信小程序/H5真机调试接口的流程

我们创建.net6 api程序,然后使用SqlSugar连接MySQL数据库,再使用iis发布,当然使用其他的也行。再开发一个微信小程序,手机运行小程序,手机运行H5,都可以看到数据库的数据,就是这么一个流程。

开始!

目录

第一,.net6api开发

第二,IIS发布.net6api

第三,开发微信小程序

第四,微信小程序真机运行

第五,H5运行


第一,.net6api开发

1.创建.net6 api程序

2.安装SqlSugarCore

3.为了简单,就在WeatherForecastController控制器里面写一个方法

业务就是:查询c表的数据,数据没有任何意义,仅仅只是举例

using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using SqlSugar;
using System.Data;

namespace testNet6.Controllers
{
    [ApiController]
    [Route("api/[controller]/[action]")]
    public class WeatherForecastController : ControllerBase
    {
        private static readonly string[] Summaries = new[]
        {
        "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
    };
        private readonly ISqlSugarClient db;
        private readonly ILogger<WeatherForecastController> _logger;

        public WeatherForecastController(ILogger<WeatherForecastController> logger, ISqlSugarClient db)
        {
            _logger = logger;
            this.db = db;
        }

        [HttpGet]
        public IEnumerable<WeatherForecast> Get()
        {
            return Enumerable.Range(1, 5).Select(index => new WeatherForecast
            {
                Date = DateTime.Now.AddDays(index),
                TemperatureC = Random.Shared.Next(-20, 55),
                Summary = Summaries[Random.Shared.Next(Summaries.Length)]
            })
            .ToArray();
        }
        [HttpGet]
        public async Task<ActionResult<object>> GetAll()
        {
            DataTable dt = await db.Ado.GetDataTableAsync($"SELECT `c`\r\n\t,`cc`\r\n\t,`q`\r\nFROM `test`.`c`\r\n ");
            return JsonConvert.SerializeObject(dt);
        }
    }
}

Program.cs代码

包含了注入SqlSugarScope和跨域的配置

using SqlSugar;

namespace testNet6
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var builder = WebApplication.CreateBuilder(args);

            builder.Services.AddControllers();
            builder.Services.AddEndpointsApiExplorer();
            builder.Services.AddSwaggerGen();
            builder.Services.AddSingleton<ISqlSugarClient>(db =>
            {
                return new SqlSugarScope(
                           new ConnectionConfig()
                           {
                               DbType = SqlSugar.DbType.MySql,
                               ConnectionString = builder.Configuration["ConnectString"],
                               IsAutoCloseConnection = true,
                           }, db =>
                           {
                               //单例参数配置,所有上下文生效       
                               db.Aop.OnLogExecuting = (sql, pars) =>
                               {
                                   Console.WriteLine(UtilMethods.GetSqlString(SqlSugar.DbType.MySql, sql, pars));
                               };
                           });
            });
            builder.Services.AddCors(options =>
            {
                options.AddPolicy("cors", p =>
                {
                    p.AllowAnyOrigin()
                    .AllowAnyMethod()
                    .AllowAnyHeader();

                });
            });

            var app = builder.Build();

            app.UseSwagger();
            app.UseSwaggerUI();
            app.UseCors("cors");
            app.UseHttpsRedirection();

            app.UseAuthorization();


            app.MapControllers();

            app.Run();
        }
    }
}

4.效果

此时我们直接运行代码可以看到需要的数据

第二,IIS发布.net6api

当然这步也可以使用Nginx来发布.net6 api,等等其他的也行

1.回到程序中,然后我点击发布

这里选择如图所示即可

2.然后看到publish文件夹下生成的文件

3. 打开IIS,然后输入网站名称,物理路径就是指向publish

点击确定

4.运行效果

补充:切记只要环境配置正常了,直接扔进去即可,不需要任何设置,设置了可能出问题。 

配置问题,具体可以百度搜索一下,主要是要下载运行时文件,这里就不详细说了

Download .NET 6.0 (Linux, macOS, and Windows)

是否成功看模块中的项,如图所示

第三,开发微信小程序

1.微信小程序我们使用uniapp开发,具体参考如下

uniapp中调用.net6 webapi_uniapp webapi_故里2130的博客-CSDN博客

2.这里的功能很简单,就是我们访问.net6api的数据,在前台上显示即可

所以,这里的代码就简写了

 首先我们配置后台接口

const BASE_URL = 'http://192.168.191.1:8066'

这里的request我使用的是luch-request,都封装好了,直接用即可

	request.get(`/api/WeatherForecast/GetAll`).then(res => {
			console.log(res)
			aaaaa.value = res
		})

3.一切完成后,点击运行

4.效果

这是网站的效果

5.进入微信开发者工具之前

这里坑很多,只说大概流程

此时就要申请测试号,网址如下,把APPID填到下图中

小程序

6.如图所示,点击运行

这里也有很多坑,有时候运行不起来,可以看程序的报错,要打开端口,不行就多运行几次,或者退出试试。

7.进入微信开发者工具

终于进来了!!!

如果这里是灰色的,是不能真机调试的,所以这步是关键,APPID是关键

8.运行

如果报错点击这2个按钮,直到运行成功

9.成功运行,并且显示的数据和网站的一样

此时我们开发的环境就是这么多,足够用了。也就是网站和微信小程序开发的环境。 

总以为把所有的坑都踩完了,万万没想到啊,真机运行才是最大的坑。

第四,微信小程序真机运行

 1.首先排除出现这个错误提示,不影响的,是正常的

2.先看看,遇到错误图,现在已经对不上号了,因为最后一步真机调试,断断续续折腾2天,也设置了很多配置,都是无用功

基本上都是

errno":600001这些

request:fail errcode:-300 cronet_error_code:-300 error_msg:net::ERR_INVALID_URL

还有什么SSL问题,很多人说微信小程序只能访问HTTPS,不能访问HTTP。当时我还问了微软的ChatGpt,她也说是的,我人麻了,安装SSL又非常的复杂。她的意思是不是在正式部署的时候必须使用HTTPS?暂时我也不知道,谁知道可以告诉我一下。但是真机调试时,http也是可以的,我已经测试成功,本案例就是基于HTTP的。

3.意外发现

当我部署.net6api以后,在Windows的日志中,发现了问题

An unhandled exception was thrown by the application

Unable to resolve service for type 'SqlSugar.ISqlSugarClient' 

这就是最后的线索了,意思是我程序中的ISqlSugarClient没有被解析。

原因就是这里导致的,正确的写法就是一开始.net6api中ISqlSugarClient注入的写法。

最奇怪的是:“之前错误的写法”,在IIS部署后,网站,微信小程序都可以访问,没有任何问题,就是到了真机调试的时候出的问题, 所以怀疑代码写错实在太难了。

3.配置截图

注意微信开发者工具的版本

手机网络和电脑要在同一个WiFi环境下这是前提

然后下面是配置的截图,成功运行的配置

  

4.真机运行

出不来,就多重启几次,多编译几次,缓存清理一下 

手机上面的显示 

电脑的日志显示

至此,微信小程序真机终于成功了! 

第五,H5运行

1.H5比较简单,选择如图所示

2.会生成静态文件夹

3.在IIS上面部署即可

H5配置的时候,会出现IIS跨域问题,这个问题百度即可,但是也不好设置,因为每台电脑的IIS内置有些不一样。

4.手机访问H5

输入IP地址和端口即可

 

大功告成! 

来源:IIS发布.net6 api+微信小程序/H5真机调试接口的流程_.net微信小程序_故里2130的博客-CSDN博客

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

故里2130

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值