查看“Linux 上 .NET Core”的源代码
←
Linux 上 .NET Core
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
=plan and optimize= 数据库读取这块有办法提速没,不做缓存的情况下 加索引 合理建表 也就是sql 语句优化 取消dns查询 关键字段建立索引 确保索引用上 表分区 队列操作 比较常的 索引这个最基本的,基本上上千万级别查询都没问题的,亿级别的分表分库处理。 最好的优化方式是钱。。。。 [http://blog.csdn.net/ruanchao/article/details/4857639 开启 MySQL query cache,加快数据库读取速度] 先在外网机上上个pg =pre env= 用.net core去开发后端 会暴露n个web服务器和n个socket服务器 全部.net core的 https://www.mysql.com/products/connector/ 这个是.net fx的 .net core是另外的 =DB= [[Postgresql]] ===db 备份=== postgresql 硬盘上ssd 那应该是db 独立为一台机器 ====第一种方法:通过PostgreSQL的环境变量参数来实现保存密码==== cat pgsql_backup.sh <pre>#!/bin/bash export PGPASSWORD="123456" su - postgres -bash-4.2$ /usr/bin/pg_dump -U postgres awen > /data/pgsql.backup.sql -bash: /data/pgsql.backup.sql: 权限不够 -bash-4.2$ /usr/bin/pg_dump -U postgres awen > pgsql.backup.sql 注意的点 1. 要 切换到postgres用户 2. 备份的目录得是postgres用户有权限的地方</pre> ===postgrepsql参考=== [http://www.cnblogs.com/fcode/articles/PostgreSQL.html PostgreSQL] [https://github.com/digoal/blog PostgreSQL Greenplum 培训视频分享] [http://valleylord.github.io/post/201409-postgres-backup-restore/ PostgreSQL的备份与还原-good] [http://heyiyi.blog.51cto.com/205455/1658896 postgreSQL进程检测与数据库备份脚本] [http://bbs.chinaunix.net/thread-1760961-1-1.html 一种简单的PostgreSQL备份脚本(无须手动输入密码)] [http://www.postgres.cn/docs/9.6/index.html PostgreSQL 9.6.0 手册] [http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html PostgreSQL新手入门] [https://wiki.postgresql.org/wiki/YUM_Installation postgresql YUM Installation] [http://906179271.iteye.com/blog/2183605 Postgresql数据库运维笔记] [http://www.cnblogs.com/tjpanda88/p/4306149.html CentOS7 PostgreSQL安装] [https://www.zhihu.com/question/28085660 PostgreSQL 有哪些经典入门书籍] [http://www.yunweipai.com/archives/21524.html PostgreSQL在阿里的应用] [http://www.jiaoben88.com/os/1011.html Linux下定时备份Postgresql数据库] [http://www.opstool.com/article/231 Postgresql笔记] === 常用命令=== <pre> su - postgres postgres=# \du 角色列表 角色名称 | 属性 | 成员属于 ----------+--------------------------------------------+---------- awen | 超级用户 | {} postgres | 超级用户, 建立角色, 建立 DB, 复制, 绕过RLS | {} postgres=# \l 数据库列表 名称 | 拥有者 | 字元编码 | 校对规则 | Ctype | 存取权限 -----------+----------+----------+-------------+-------------+----------------------- awen | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | postgres | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | template0 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 行记录)</pre> =.NET CORE = [https://github.com/aspnet/home/#getting-started ASP.NET Core] [http://www.cnblogs.com/frankyou/archive/2016/07/22/5695214.html 发布ASP.NET Core程序到Linux生产环境] [http://www.qingpingshan.com/m/view.php?aid=318910 ASP.NET Core 2.0笔记(1):CentOS下.net core2 sdk nginx、sup] [http://www.cnblogs.com/Wddpct/p/5694596.html .NET Core全面扫盲贴] [https://docs.microsoft.com/zh-cn/dotnet/core/linux-prerequisites?tabs=netcore2x Linux 上 .NET Core] [https://docs.microsoft.com/zh-cn/dotnet/core/get-started .NET Core 入门] == .net core install == <pre> sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl=https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo' #sudo yum update #可以不要的 yum makecache sudo yum -y install libunwind libicu sudo yum -y install dotnet-sdk-2.1.2 #me mkdir webapi dotnet new webapi dotnet run dotnet new console -o hwapp cd hwappdotnet run warn: Microsoft.AspNetCore.Server.Kestrel[0] Unable to bind to http://localhost:5000 on the IPv6 loopback interface: 'Error -99 EADDRNOTAVAIL address not available'. #if asp.net dotnet new razor -o aspnetcoreapp cd aspnetcoreapp dotnet run Browse to http://localhost:5000 </pre> [https://cloud.tencent.com/community/article/236235001482204738 Docker 部署dotnetcore] ==部署asp.net core== <pre> 配置守护服务(Supervisor) 这个 暂时启动有问题 :ASP.NET Core应用程序运行在shell之中,如果关闭shell则会发现ASP.NET Core应用被关闭,从而导致应用无法访问,这种情况当然是我们不想遇到的,而且生产环境对这种情况是零容忍的。 为了解决这个问题,我们需要有一个程序来监听ASP.NET Core 应用程序的状况。在应用程序停止运行的时候立即重新启动。这边我们用到了Supervisor这个工具,Supervisor使用Python开发的。 安装Supervisor yum install python-setuptools easy_install supervisor #or yum yum install epel-release yum install -y supervisor 配置Supervisor mkdir /etc/supervisor #echo_supervisord_conf > /etc/supervisor/supervisord.conf 修改supervisord.conf文件, vim /etc/supervisor/supervisord.conf 将文件尾部的配置(表示加载配置文件目录下的配置文件) 修改为 [include] files = relative/directory/*.ini 把;files = relative/directory/*.ini改为files = conf.d/*.conf 保存并退出 c.执行supervisorctl reload命令使配置文件生效。(ps:如果服务已启动,修改配置文件可用“supervisorctl reload”命令来使其生效) d.在/etc/supervisor/下创建conf.d文件夹,及ProjectName.conf(以项目名称命名的) mkdir -p /etc/supervisor/conf.d vi /etc/supervisor/conf.d/ProjectName.conf e.打开ProjectName.conf文件,添加内容如下: [program:ProjectName] command=dotnet ConsoleApp1.dll ; directory=/data/wawa_test1/publish; autorestart=true ; autostart=true ; stderr_logfile=/data/logs/ProjectName.err.log ; stdout_logfile=/data/logs/ProjectName.out.log ; environment=ASPNETCORE_ENVIRONMENT=Production; user=root ; stopsignal=INT startsecs=1; ##下面为解说 [program: ProjectName] command=dotnet ProjectName.dll ; 运行程序的命令 directory=/root/Publishing/PublishOutput/ ; 命令执行的目录 autorestart=true ; 程序意外退出是否自动重启 autostart=true ; 是否自动启动 stderr_logfile=/var/log/ProjectName.err.log ; 错误日志文件 stdout_logfile=/var/log/ProjectName.out.log ; 输出日志文件 environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量 user=root ; 进程执行的用户身份 stopsignal=INT startsecs=1 ; 自动重启间隔 service supervisord start supervisord -c /etc/supervisor/ supervisord.conf ps -ef | grep ProjectName err [root@_111_centos publish]# supervisord -c /etc/supervisor/supervisord.conf Error: invalid literal for long() with base 10: '1;' in section 'program:ProjectName' (file: '/etc/supervisor/conf.d/ProjectName.conf') </pre> ==配置对ASP.NET Core应用的守护== <pre> 创建一个 farmhomeapp.conf文件 内容大概如下 [program:ProjectName] command=dotnet farmhome.dll ; 运行程序的命令 directory=/home/wwwroot/farmhome/ ; 命令执行的目录 autorestart=true ; 程序意外退出是否自动重启 stderr_logfile=/var/log/WebApplication1.err.log ; 错误日志文件 stdout_logfile=/var/log/WebApplication1.out.log ; 输出日志文件 environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量 user=root ; 进程执行的用户身份 stopsignal=INT 运行supervisord,查看是否生效 supervisord -c /etc/supervisor/supervisord.conf [root@VM_130_111_centos hosts]# ps -ef | grep super root 6864 1 0 10:04 ? 00:00:00 /usr/bin/python /usr/bin/supervisord -c /etc/supervisor/supervisord.conf </pre> == linux服务启动形式== http://www.cnblogs.com/dudu/p/run-aspnet-core-website-as-service-on-linux.html https://docs.microsoft.com/en-us/aspnet/core/publishing/linuxproduction?tabs=aspnetcore2x 可以通过systemctl 启动 ==配置Supervisor开机启动== <pre> 新建一个“supervisord.service”文件 vim /usr/lib/systemd/system/supervisord.service 内容如下 # dservice for systemd (CentOS 7.0+) # by ET-CS (https://github.com/ET-CS) [Unit] Description=Supervisor daemon [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf ExecStop=/usr/bin/supervisorctl shutdown ExecReload=/usr/bin/supervisorctl reload KillMode=process Restart=on-failure RestartSec=42s [Install]0 执行命令:systemctl enable supervisord 设定开机启动 执行命令:systemctl is-enabled supervisord #来验证是否为开机启动 </pre> [http://blog.csdn.net/xyang81/article/details/51555473 Supervisor安装与配置(Linux/Unix进程管理工具)] [http://www.cnblogs.com/Hai--D/p/5820718.html Linux Supervisor的安装与使用入门] [http://everet.org/supervisor.html 使用Supervisor简化进程管理工作] http://www.qingpingshan.com/m/view.php?aid=318910 [https://wiki.postgresql.org/wiki/YUM_Installation postgresql YUM Installation] ==run app== <pre> [root@Vntos data]# dotnet ConsoleApp1.dll A fatal error was encountered. The library 'libhostpolicy.so' required to execute the application was not found in '/data/'. </pre> ==err== <pre> PS D:\ChuckLu\Git\GitHub\KerryJiang\IrvineCSharpCourses> dotnet restore MSBUILD : error MSB1003: Specify a project or solution file. The current working directory does not contain a project or solution file. 这个命令需要在项目或者解决方案下运行才有效 然后叫老谢 重打个包就好 应该都是他那边的问题 </pre> http://www.cnblogs.com/chucklu/p/7095919.html [https://docs.microsoft.com/en-us/aspnet/core/getting-started Get Started with ASP.NET Core] [https://www.microsoft.com/net/core#linuxcentos Install .NET and build your first app on CentOS] [https://www.microsoft.com/net/core#dockercmd Install .NET and build your first app on Docker] =服务的注册和发现 Consul= 可能用这个做负载均衡 https://www.consul.io [http://www.cnblogs.com/ruanyifeng/p/5550102.html Consul入门] =nginx= <pre> #这个好像我去到 server { listen 80; server_name 192.168.30.108; location / { proxy_pass http://127.0.0.1:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } </pre> =知识扩展= <pre>微软开发的.NET平台编程语言 C#,一个以C++和Java语法为基础开发的一个全新的面向对象语言,是.NET开发的首选语言。 Visual Basic .NET,一个加强了面向对象支持的,支持多线程的Visual Basic版本。 C++/CLI,一个C++的.NET平台版本变种。 JScript .NET,一个编译版本的MicrosoftJScript语言。 J#,一个对应于Java和J++(微软自己开发的Java变种)的.NET平台版本,但是由于知识产权问题,目前微软公司已经停止其开发应用。 F#,ML语言家族的一员。 Microsoft Small Basic</pre> [http://www.cnblogs.com/Cwj-XFH/p/6557998.html .NET Core中的包、元包与框架] =参考= [[category:.net]][[category:ops]]
返回至
Linux 上 .NET Core
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
我的导航
关于我
shell
python
ops
linuxchina.net
blog.linuxchina
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息