Ubuntu 16.04下ASP.NET Core+ MySql + Dapper在 Jexus、nginx 下的简单测试

一、环境及工具

1、服务器

  • VirtualBox5.1.4 安装 Ubuntu Server 16.04 amd64

  • MySql Ver 14.14 Distrib 5.6.21

  • Jexus 5.8.1

  • nginx 1.10.0

  • dotnet core 1.0.0-preview2-003121

  • supervisor 3.2.1

2、开发环境

  • VS2015 + Update 3

  • DotNetCore.1.0.0-VS2015Tools.Preview2.0.1.exe

3、测试工具

  • HttpTest4Net:http://www.ikende.com/httptest

二、项目及代码

1、mysql 数据访问、ORM

  • MySql.Data.Core 7.0.4-IR-191

  • Dapper 1.50.2

2、数据库及表

  • 数据库:Test

  • 数据表:User 两个字段:Id,Name,数据4条


CREATE TABLE `User` (`Id` int(11) NOT NULL AUTO_INCREMENT,`Name` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;-- ------------------------------ Records of User-- ----------------------------INSERT INTO `User` VALUES ('1', 'LXY-1');INSERT INTO `User` VALUES ('2', 'LXY-2');INSERT INTO `User` VALUES ('3', 'LXY-3');INSERT INTO `User` VALUES ('5', 'LXY-5-New');
  • 项目,最简单的三层结构,实现增删改查(下载

如需使用项目,请修改数据库连接字符串,在 appsettings.json 文件里:


{    "Logging": {     
   
"IncludeScopes": false,    
   
"LogLevel": {        
   
"Default": "Debug",      
     
"System": "Information",
           
"Microsoft": "Information"}},    "ConnectionStrings": {    
   
"TestDb": "server=192.168.2.117;Port=51889;userid=test8888;password=test8888;database=Test;SslMode=None;"} }

项目使用ASP.NET CORE 自带的依赖注入,没有使用第三方的,Controller代码如下:

[Route("api/[controller]")]  
 
public class UserController : Controller{      
    
readonly IUserBll _userBll;  

      
public UserController(IUserBll userBll){_userBll = userBll;}[HttpGet]    
       
public IEnumerable<User> Get(){          
           
return _userBll.GetList();}[HttpGet("{name}")]  
       
public User Get(string name){          
            
return _userBll.Get(name);}[HttpPost]    
       
public void Post([FromBody]User user){          
           
if(user == null || string.IsNullOrEmpty(user.Name)){    
                 
return;}_userBll.Add(user);}[HttpPut]  
       
public void Put([FromBody]User user){          
           
if (user == null || user.Id < 0 || string.IsNullOrEmpty(user.Name)){                return;}_userBll.Update(user);}[HttpDelete("{id}")]
       
public void Delete(int id){_userBll.Delete(id);}}

三、ASP.NET CORE 在 Ubuntu 的配置

  参考大神 savorboard 的博客:http://www.cnblogs.com/savorboard

四、测试结果

   说明:因为使用jexus端口转发模式测试时,Requests:10000   Users:50  KeepAlive:False 的时候,就出现了很多错误连接,所以没有继续测试,不知道是不是我的配置有问题,配置如下:

######################
# Web Site: Default
########################################port=8080root=/ /hoem/vsftpd/website/webapitest
hosts=*    #OR your.com,*.your.com# addr=0.0.0.0# CheckQuery=falseNoLog=trueAppHost.Port=5000# NoFile=/index.aspx
# Keep_Alive=false
# UseGZIP=false
# UseHttps=true
# DenyFrom=192.168.0.233, 192.168.1.*, 192.168.2.0/24# AllowFrom=192.168.*.*
# DenyDirs=~/cgi, ~/upfiles
# indexes=myindex.aspx
# rewrite=^/.+?\.(asp|php|cgi|pl|sh)$ /index.aspx

  端口转发测试结果如下:

  

  

  下面是 nginx 和 jexus 反向代理模式下的测试结果:

  1. Requests:10000; Users:50;KeppAlive:False

  nginx:

  

  

  jexus: 

  

  

  2. Requests:10000; Users:50;KeppAlive:True

  nginx:

  

  

  jexus:

  

  

  3. Requests:10000; Users:200;KeppAlive:False

  nginx:

  

  

  jexus:

  

  

  4. Requests:10000; Users:200;KeppAlive:True

  nginx:

  

  

  jexus:

  

  

  5. Requests:10000; Users:500;KeppAlive:False

  nginx:

  

  

  jexus:

  

  

  6. Requests:10000; Users:500;KeppAlive:True

  nginx:

  

  

  jexus:

  

   

  7. Requests:10000; Users:100;KeppAlive:False

  nginx:

  

  

  jexus:

  

  

  8. Requests:10000; Users:1000;KeppAlive:True

  nginx:

  

  

  jexus:

  

  

 

五、总结

  1. 测试环境非常简陋,测试到1000用户的时候,路由器受不了了,其他应用程序都纷纷离线了,包括QQ。上面结果可能不是非常准确,但是有一定的参考价值。

  2. 只测试了GET,没有测试POST。

  3. 感觉ASP.NET CORE 应该慢慢的可以使用到生产环境中了:)。



原文地址:http://www.cnblogs.com/Starts_2000/p/aspnetcore-ubuntu1604-mysql-dapper-jexus-nginx-test.html



.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/328384.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jsp九大隐藏对象

转载自 jsp九大隐藏对象&#xfeff;&#xfeff;jsp内置对象&#xff08;隐藏对象&#xff09;&#xff1a;不加声明和创建就可以在jsp页面脚本中使用的成员对象。 内置对象类型作用域requestjavax.servlet.http.HttpServletRequestrequestresponsejavax.servlet.http.HttpS…

新闻发布项目——数据库脚本(直接导入即可)

数据库sql servel 2012版本&#xff0c;以下是脚本&#xff1a; USE [master] GO /****** Object: Database [newsDB] Script Date: 2016/11/24 19:48:46 ******/ CREATE DATABASE [newsDB]CONTAINMENT NONEON PRIMARY ( NAME NnewsDB, FILENAME NE:\第二期\第六本书使…

最新版Intellij IDEA视频教程 20170814

01课程介绍和软件安装.avi 02Intellij IDEA常用快捷键1132.avi 03Intellij IDEA安装Tomcat和Maven.avi 04Intellij IDEA使用Maven Helper插件分.avi 05Intellij IDEA中Git安装和使用.avi 06Intellij IDEA连接MySQL数据库.avi 07Intellij IDE使用GsonFormat转化json.avi …

Docker容器环境下ASP.NET Core Web API应用程序的调试

本文主要介绍通过Visual Studio 2015 Tools for Docker – Preview插件&#xff0c;在Docker容器环境下&#xff0c;对ASP.NET Core Web API应用程序进行调试。在自己做实验的过程中也碰到了一些问题&#xff0c;经过一些测试和搜索资料&#xff0c;基本解决了这些问题&#xf…

php 查看spl,PHP使用标准库spl实现的观察者模式示例

本文实例讲述了PHP使用标准库spl实现的观察者模式。分享给大家供大家参考&#xff0c;具体如下&#xff1a;前面使用纯php实现了一个观察者模式(php观察者模式)&#xff0c; 现在使用php标准库spl在次实现观察者模式&#xff0c;好处是&#xff1a;随意的生成您想使用的观察者&…

深入体验JavaWeb开发内幕——简述JSP中的自定义标签叫你快速学会

转载自 深入体验JavaWeb开发内幕——简述JSP中的自定义标签叫你快速学会自定义标签&#xff0c;顾名思义&#xff0c;就是自己定义的标签。那么我们为什么要自己定义一些标签呢&#xff1f; 我们知道&#xff0c;如果要在JSP中获取数据我们可以采用通过JSP的隐式对象request来…

ps查看所有php进程,ps命令就是最基本进程查看命令

1、ps是什么&#xff1f;要对进程进行监测和控制&#xff0c;首先必须要了解当前进程的情况,也就是需要查看当前进程&#xff0c;ps命令就是最基本进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等…

如何测试微信应用号

每一次微信的动作都是商机&#xff0c;而随着微信应用号的即将面世&#xff0c;微信应用号的开发和测试又会成为一股新的风向。 其实经常有人问到微信服务号或者微信订阅号怎么测试的相关内容&#xff0c;可能总觉得比较缺乏技术含量不太想说&#xff0c;这次看了下应用号&…

git 拉代码

git clone 。。 拉取代码master git clone -b 分支名 。。。 拉取分支名 git——更新分支、提交代码、切换分支、合并分支 还是直接贴教程吧&#xff1a;https://git-scm.com/book/zh/v2 如何把本地idea上的项目上传到github上&#xff1a;https://www.cnblogs.com/…

javaweb学习总结(二十四)——jsp传统标签开发

转载自 javaweb学习总结(二十四)——jsp传统标签开发一、标签技术的API 1.1、标签技术的API类继承关系二、标签API简单介绍 2.1、JspTag接口JspTag接口是所有自定义标签的父接口&#xff0c;它是JSP2.0中新定义的一个标记接口&#xff0c;没有任何属性和方法。JspTag接口有Tag…

二级导航 sql php,帝国cms栏目导航调用之SQL语句调用一级栏目和二级栏目的方法...

帝国cms调用一级栏目及下面的二级栏目调用方法如下&#xff1a;SQL语句<?php $ecms_bq_sqlsys_ReturnEcmsLoopBq("select * from [!db.pre!]enewsclass where bclassid0 order by myorder limit 6",14,24,0);$bqno0;while($bqr$empire->fetch($ecms_bq_sql)){…

Java开发利器:IntelliJ IDEA的安装、配置与使用

1.尚硅谷-IDEA-IntelliJ IDEA的介绍和优势 2.尚硅谷-IDEA-版本介绍与安装前的准备 3.尚硅谷-IDEA-IDEA的卸载 4.尚硅谷-IDEA-IDEA的安装 5.尚硅谷-IDEA-安装目录和设置目录结构的说明 6.尚硅谷-IDEA-启动IDEA并执行HelloWorld 7.尚硅谷-IDEA-Module的使用 8.尚硅谷-IDEA…

开发者的利器:Docker 理解与使用

困扰写代码的机器难免会被我们安装上各种各样的开发工具、语言运行环境和引用库等一大堆的东西&#xff0c;长久以来不仅机器乱七八糟&#xff0c;而且有些相同的软件还有可能会安装不同的版本&#xff0c;这样又会导致一个项目正常运行了&#xff0c;却不小心破坏了另一个项目…

php环境搭建sqlserver,ThinkPHP5.0/5.1对接SQLServer数据库(宝塔环境)

SQLServer实际上是mssql&#xff0c;想要使用thinkphp的Db对象操作数据库前必须要在服务器上安装对应的扩展。宝塔面板的PHP安装路径为/www/server/php/ 且支持多个PHP版本共存&#xff0c;所以安装PHP扩展的方法与网上那些示例略有不同。下面是 PHP7.2 安装 pdo_sqlsrv5.6.0 扩…

<c:set>标签

转载自 <c:set> 标签 JSP 标准标签库 <c:set>标签用于设置变量值和对象属性。 <c:set>标签就是<jsp:setProperty>行为标签的孪生兄弟。 这个标签之所以很有用呢&#xff0c;是因为它会计算表达式的值&#xff0c;然后使用计算结果来设置 JavaBean 对…

layUI 日期组件单独使用 并且放大

日期类型 选择 layuI 的date 类型单独使用 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>layDate快速使用</title><link rel"stylesheet" href"/layui/css/layui.css" media"all…

Opserver开源的服务器监控系统(ASP.NET)

Opserver是Stack Exchange下的一个开源监控系统,系统本身由C#语言开发的ASP.NET&#xff08;MVC&#xff09;应用程序&#xff0c;无需任何复杂的应用配置&#xff0c;入门很快。下载地址&#xff1a;https://github.com/opserver/Opserver。据说&#xff0c;国内腾讯公司内部也…

jsp页面中JSTL/EL标签引用java后台静态static字段的方法总结

转载自 jsp页面中JSTL/EL标签引用java后台静态static字段的方法总结为什么使用该功能&#xff1f;项目中的每个页面都包含产品名称、Logo、版本等信息&#xff0c;我希望修改一处&#xff0c;其它所有的全部跟着变。 有同学会说那就都引用一个页面“”就Ok了&#xff1b;但是…

c 管理信息系统mysql,输入数据并输出信息的系统都称为()。A、信息系统B、数据库系统C、事务处理系统D、管理信息系统...

关于葡萄糖重吸收的叙述&#xff0c;错误的是()。A.只有近球小管可以重吸收B.与Na&#xff0b;的重吸收相耦联C.是一种主肌力评定时错误的做法是A、应使患者配合B、患者应适当去除衣物C、应检查涉及的所有关节D、应增加协同当使用竹笆脚手板时&#xff0c;纵向水平杆与横向水平…

一位跨平台开发者的自白

Andreia Gaita[1] 在 OSCON 开源大会上发表了一个题为跨平台开发者的自白[2]的演讲。她长期从事于开源工作&#xff0c;并且为Mono[3] 工程&#xff08;LCTT 译注&#xff1a;一个致力于开创 .NET 在 Linux 上使用的开源工程&#xff09;做着贡献&#xff0c;主要以 C#/C 开发。…