首页 > 编程语言 >开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试

开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试

时间:2022-08-20 16:49:34浏览次数:121  
标签:Web 程序 局域网 API 调试 policy public localhost

在我们开发开发H5程序或者小程序的时候,有时候需要基于内置浏览器或者微信开发者工具进行测试,这个时候可以采用默认的localhost进行访问后端接口,一般来说没什么问题,如果我们需要通过USB基座方式发布到手机进行App测试的时候,那就需要使用局域网的IP地址了,否则就无法访问后端的接口,本篇随笔总结在开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址和localhost地址并存,便于开发测试。

1、修改VS配置地址文件

默认我们IISExpress是采用localhost进行调试的,我们如果需要使用局域网地址如192.1068.1.*开始的IP端进行调试,那么就需要首先修改VS的配置信息,一般在项目的隐藏文件夹 .vs 中,找到对应项目的解决方案目录下的config目录,如我一个项目是:

 

 打开这个文件,可以看到很多配置信息,定位到binding的配置项目中,找到对应项目的配置信息,如下所示。

<site name="WebAPI" id="3">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="E:\个人应用程序\Web开发框架\Bootstrap开发框架\WebAPI" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:27206:localhost" /> </bindings> </site>

我们可以修改它,增加对应的局域网IP地址的配置信息,如下所示。

<site name="WebAPI" id="3">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="G:\个人应用程序\Web开发框架\Bootstrap开发框架\WebAPI" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:27206:192.168.1.103" />
        <binding protocol="http" bindingInformation="*:27306:localhost" />
    </bindings>
</site>

这里增加了一个局域网的IP配置项目,同时新建一个本地localhost的端口,因为我们希望保留两个不同的连接,如果只需保留局域网,那么移除其中一个localhost的配置即可。

保存文件就可以继续下一步了。

 

2、以管理员方式启动VS并进行查看

如果我们需要启动局域网IP的IISExpess端口,一定需要以管理员方式启动VS,否则IISExpess提示出错,无法绑定IP端口的。

然后在C#的Web API项目上,右键出现的菜单中,启动调试或者启动项目即可。

项目顺利启动后,就可以看到有两个不同的端口,一个是局域网IP的,一个是localhost的了。

 这样我们在前端项目上,就可以配置基础路径为局域网IP地址了。

   baseUrl: 'http://192.168.1.103:27206'


这样我们就可以在HBuilderX中进行扫码测试功能了,或者在微信开发者工具中也可以。

 如果通过USB基座发布到手机真机测试也可以正常访问局域网的后端接口数据了。

 

 运行程序可以获得APP的体验效果。 

 

3、后端Web API的CORS跨域处理。

有时候,我们需要在后端的Web API项目上设置CORS的跨域处理,以便于本地调试的访问处理。

如果是常规的Web API项目,我们设置其WebApiConfig文件就可以了,如下所示。

 

 增加CORS的工厂处理,设置相关的参数。

namespace WebAPI
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Web API 配置和服务

            //支持CORS
            //config.EnableCors();

            config.SetCorsPolicyProviderFactory(new CorsPolicyFactory());
            config.EnableCors();

完整的文件如下所示。

namespace WebAPI
{
    /// <summary>
    /// JS跨域工厂类
    /// </summary>
    public class CorsPolicyFactory : ICorsPolicyProviderFactory
    {
        ICorsPolicyProvider _provider = new MyCorsPolicyAttribute();

        public ICorsPolicyProvider GetCorsPolicyProvider(HttpRequestMessage request)
        {
            return _provider;
        }
    }

    [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = false)]
    public class MyCorsPolicyAttribute : Attribute, ICorsPolicyProvider
    {
        private CorsPolicy _policy;

        public MyCorsPolicyAttribute()
        {
            _policy = new CorsPolicy
            {
                AllowAnyMethod = true,
                AllowAnyHeader = true,
                SupportsCredentials = true,
                AllowAnyOrigin = true,//设置所有的都可以
            };

            // Add allowed origins.
            _policy.Origins.Add("http://localhost:8080");
            _policy.Origins.Add("http://localhost:8081");
            _policy.Origins.Add("http://192.168.1.103:8080");
            _policy.Origins.Add("http://192.168.1.103:8081");
            //_policy.Origins.Add("http://localhost");
        }

        public Task<CorsPolicy> GetCorsPolicyAsync(HttpRequestMessage request)
        {
            return Task.FromResult(_policy);
        }

        public Task<CorsPolicy> GetCorsPolicyAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            return Task.FromResult(_policy);
        }
    }
}

以上就是在开发前后端项目中的一些调试测试细节地方,供参考。

标签:Web,程序,局域网,API,调试,policy,public,localhost
From: https://www.cnblogs.com/wuhuacong/p/16607882.html

相关文章

  • 不常见但很有用的chrome调试工具使用方法
     https://www.cnblogs.com/xiaohuochai/p/6344886.html前面的话  对于chrome调试工具,常用的是elements标签、console标签、sources标签和network标签。但实际上,还......
  • Spring Boot调用api patch接口
    SpringBoot调用apipatch接口示例:/***调用apipatch接口**@paramurl*@paramjsonObject*@returnjava.lang.String*@a......
  • 10.java程序出现oom如何解决?什么场景下会出现oom?
    10.java程序出现oom如何解决?什么场景下会出现oom? oom概述Outofmemory(OOM)是一种操作系统或者程序已经无法再申请到内存的状态。经常是因为所有可用的内存,包括磁盘交换......
  • Spring Boot调用api delete接口
     SpringBoot调用apidelete接口示例:/***调用apidelete接口**@paramurl*@authorli.zhm*@date2022/8/2014:07*@hist......
  • php断点调试工具------NetBeans+Xdebug调试php方法(测试成功)
    @原文url:http://www.cnblogs.com/dcb3688/p/4608015.html@netbeans官方调试php代码说明:https://netbeans.org/kb/docs/php/debugging_zh_CN.html个人认为,对有有经验......
  • github_findpath_v1.0-Github开源项目目录爆破程序
    Github开源项目目录爆破程序​ 写了个小工具,欢迎师傅们提建议​ 某一天回我的母校溜达了一圈,然后用GoogleHack找到了一个后台,用Wappalyzer没识别到CMS,但是看着这东西......
  • 同花顺委托程序结构
    Dialog-'网上股票交易系统5.0'(L-8,T-8,R1928,B1048)['网上股票交易系统5.0Dialog','Dialog','网上股票交易系统5.0']child_window(title="网上股票交易系统5......
  • webAPI与winform之间的数据交互
    首先是json的数据转化形式:这里将对象转化成json形式,后续发给服务器接收:stringjson=JsonConvert.SerializeObject(cabinetAdd);winform把接收到的json字符串,转回本来......
  • 程序结构
    程序的执行和人生一样,有按部就班,有选择,也有循环。计算机程序由三种基本结构组成:顺序结构分支结构循环结构顺序结构人生的主线是生老病死,程序的主线是从上往下。顺......
  • Spring Boot调用api post接口
    SpringBoot调用apipost接口示例publicstaticStringsendPost(Stringurl,JSONObjectjsonObject){log.info("请求地址:{}",url);Stringbody......