代码改变世界

Centos7安装net Core

2019-02-14 22:57  糯米粥  阅读(4694)  评论(0编辑  收藏  举报

官方文档:https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install

ubuntu ,generic内核,安装失败解决方案:

https://my.oschina.net/u/938455/blog/2980679

如果提示:

-bash: donet: command not found

则执行命令试试:

ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet

 

 

我这里是物理机,不是虚拟机

 

 

第一步: sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm 

不知道这个密钥ID重要不,先打个万恶的马赛克

 

 第二步: sudo yum update  

 昨天安装docker的是已经update一次了,所以这次提示没有需要update的

 

 第三步: sudo yum install dotnet-sdk-2.2 

 

 

输入y同意下载,d代表后台下载,N代表取消下载,可已看到安装的sdk包含了runtime,其实如果仅仅运行而不开发,只要单独安装runtime即可

下载完成后又会询问是否安装,输入y即可,这里就不截图了,安装完成后

输入:dotnet --info

 

既然环境都准备好了。肯定要实现net core项目是否可以在centos上跑起来

创建一个net core 的demo ,通过dotnet publish -o f:/xx 发布

 

发布成功后

 

 

用Xftp6连接centos

 

 可以新建一个文件夹,专门存放website,我这里就创建一个CoreDemo的文件夹

左边切换到publis的文件目录,全选拖拽到右边即可完成上传操作

 

 然后切换到centos的CoreDemo文件夹运行website

 

 我在物理机是可以访问的,就不截图了

 但在另外一台电脑无法访问

 

是因为centos7防火墙没有关闭的原因,被防火墙拦截了

firewall-cmd --zone=public --add-port=80/tcp --permanent #(开放80端口)
systemctl restart firewalld #(重启防火墙以使配置即时生效)

先停止之前的网站,输入命令:

 

 然后在启动website,结果还不行,

因为物理机上面运行的是 http://localhost:5000,我输入localhost是本地的,如果输入ip:5000物理机也识别不了

所以只能修改源代码,指定运行的url,不指定端口,默认就是80

 

重新编译,并publish,再次启动,发现监听的url变了,这样可以通过

http://192.168.1.101/ 和http://localhost/ 都能访问

 

 

 

 

如果写成这样:,就只能通过http://localhost/ 访问

 

当然这仅仅是一个最简单的net core程序,这只是皮毛而已,算入门的一个开端

什么守护者进程等等继续学习,

还需要学习Jexus、IIS集成或者nginx反代向外提供服务等等

 

iis 不支持put 方法,web.config 修改:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <configuration>
 3   <location path="." inheritInChildApplications="false">
 4     <system.webServer>
 5     <modules runAllManagedModulesForAllRequests="true">
 6         <remove name="WebDAVModule" />
 7       </modules>
 8       <handlers>
 9       <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
10         <remove name="WebDAV" />
11         <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT" type="System.Web.Handlers.TransferRequestHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" />
12         <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
13       </handlers>
14       
15     </system.webServer>
16   </location>
17 </configuration>
18 <!--ProjectGuid: 4E4BA4B9-B20A-457B-8BE9-3127C90D8A7F-->
View Code