一、创建项目

新建api项目:

建好之后,一个默认的控制器已经有了:

运行就可以直接访问get接口获取数据:

二、跨平台部署

部署方面,微软已经完善的很好了,基本上算是傻瓜式操作。项目右键选择发布:

部署模式可以采用框架依赖,或独立,选择框架依赖,则需要在目标平台安装netcore运行时后才能运行netcore程序。

平台可以选择windows或linux:

发布完成后,直接运行“dotnet *.dll”即可将api服务建立起来,默认建立http的5000端口和https的5001端口,可直接访问。

三、客户端访问代码

/// <summary>

/// post函数

/// </summary>

/// <param name="url">服务器post地址</param>

/// <param name="args">api参数</param>

async void PostData(string url, string[] args)

{

    var httpClient = new HttpClient();

    //Post数据序列化

    var json = Newtonsoft.Json.JsonConvert.SerializeObject(args);

    var stringContent = new StringContent(json);

    stringContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

    //设定安全协议,不然访问默认的netcore地址会报错:基础流已关闭

    ServicePointManager.SecurityProtocol =  SecurityProtocolType.Tls11;

    var response = await httpClient.PostAsync(url, stringContent);

    var str = await response.Content.ReadAsStringAsync();

    Console.WriteLine("post:" + str);

}

四、遇到的问题与解决

  在本机用localhost,127.0.0.1等地址访问都没问题,当想测试linux环境,在centos虚拟机里服务运行后,在本机就是无法访问,但是在虚拟机内部又是没问题的。通过搜索引擎查询并解决,下面是问题与解决方法,排名不分先后。

1.运行报错Couldn't find a valid ICU package installed on the system.

 安装icu库,运行命令:yum install icu

2.防火墙问题

(1) 查看状态:firewall-cmd --state

(2) 关闭防火墙:systemctl stop firewalld

3.外部无法访问

 默认的localhost只能本地访问,需要在代码中指定:WebHost.CreateDefaultBuilder(arg).UseUrls("http://*:5000") .UseStartup<Startup>();

 或在部署是直接指定:dotnet *.dll --urls http://*:5000

4.连接sqlserver2008R2服务器超时

 Netcore在linux下如果SqlServer2008低于SP3版本,会出现连接超时的问题。只要去官方下载SqlServer 2008 Sp3 补丁安装即可。

 https://www.cnblogs.com/weiweithe/p/7810803.html

五、卷尾

Netcoreapi提供了一个新的解决方案,方便用户采用同一套代码构建跨平台程序,大大减少了开发工作量。微软正在准备NetCore3.0的发布,面向图形化界面的开发,发布后netcore的应用面应该会更广。

学海无涯,共同进步。

最新文章

  1. html之file标签 --- 图片上传前预览 -- FileReader
  2. [No000042]CSS 之 平时那些你不敢用的字体
  3. kill新号专题
  4. spark-submit提示资源不足
  5. java设计模式类图大全
  6. Extjs combox的详解
  7. Object c中的alloc和init问题
  8. 【原】数据库SQL语句入门
  9. Java与.net的区别delegate和event
  10. The square chest
  11. 【LeetCode题意分析&amp;解答】33. Search in Rotated Sorted Array
  12. php xss过滤
  13. Hibernate写入Oracle Date类型处理
  14. 编辑距离算法详解:Levenshtein Distance算法
  15. Beta版本测试报告以及Beta版本发布说明
  16. java 之 建造者模式(大话设计模式)
  17. BizTalk Server 如何处理大消息
  18. python3 用户登录 day01
  19. php正则的使用
  20. java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result异常的解决方法

热门文章

  1. vue bus.js 使用方法
  2. BFC 以及 外边距合并问题
  3. python基础知识第五篇(字典)
  4. [系列] Go 使用 defer 函数 要注意的几个点
  5. 因特尔CPU上TM和R标识的区别
  6. vue &amp; nodejs jwt 的基于token身份验证
  7. Android Activity启动流程, app启动流程,APK打包流程, APK安装过程
  8. Android utils 工具类之MD5加密 MD5Utils
  9. mysql分表之水平分割
  10. 双向bfs, A*以及其他搜索算法