代码改变世界

Centos7安装net Core

  糯米粥  阅读(4705)  评论(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
复制代码

 

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
'
点击右上角即可分享
微信分享提示