在CentOS上使用VS Code调试.Net Core应用程序
2018-01-15 14:08
836 查看
尝试新的开发组合:Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS
Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之配置IdentityServer
Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之数据迁移
Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之添加实体
Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之显示登录视图
Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之验证码
Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之登录、权限、菜单和登出
Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之文章管理
Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之文件上传
Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之部署到Linux
在CentOS上使用VS Code调试.Net Core应用程序
在《Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之部署到Linux 》一文中,部署的应用程序存在许多小问题,于是决定直接在Linux系统上使用VS Code来调试,看能不能解决这些问题。
在开始前,首先要做的是在虚拟机上装一个带有图形界面的CentOS。系统安装好以后,按照部署一文设置好Apache、MariaDB和.Net Core,然后开始安装VS Code,安装步骤可以参考文章《Running VS Code on Linux》。在这里主要参考的就是
然后是安装VS Code:
安装完成后,在图像界面中打开终端窗口,输入
VS Code安装好以后,根据文章,最好还要装Node.js,根据《Installing Node.js via package manager》一文,安装步骤是,先下载
然后安装:
最好安装上生成工具:
到目前为止,VS Code只是一个文本编辑工具而已,还不具备开发C#应用程序的一些所需功能,这个需要根据《Working with C#》一文来武装VS Code,其实就是安装一些扩展。在VS Code界面中,单击最左边的图标按钮中的最后一个图标来安装扩展。主要的扩展包括
VS Code在第一次打开的时候会检查是否已经安装了Git,如果没有会提示安装Git。如果直接使用Yum安装,安装的是1.8版本的,不符合VS Code所需的版本要求2.1以上的要求,这个只能编译安装了,具体安装步骤可参考《How to Install Git 2.15 on CentOS/RHEL 7/6, Fedora 27/26/25 》这篇文章。
一切准备就绪,现在可将应用程序项目通过SFTP上传到服务器,然后用VS Code打开项目文件夹了。在项目打开后,VS Code会自动恢复项目的依赖项。等依赖项都恢复后,先要做的是修改两个项目的appsettings.json文件,把数据库连接修改好。修改完成后,按CTRL+`键打开终端窗口,在窗口中输入以下命令执行迁移项目:
在提示中输入y开始迁移数据库。
数据库迁移后,在文件列表中,在
然后安装:
安装以后,还是出现错误,还是找不到DLL,然后通过以下命令将gdiplus.dll链接为libgdiplus.so:
终于可以顺利获取到验证码了,问题解决。
现在在客户端可以顺利登录了。下面要解决的是上传文件的路径问题,在Application项目,将
好了,再测试,这时候提示的权限问题了。这个好解决,将
调试好以后,就可以将项目发布到
项目发布以后,修改appsettings.json里的设置,修改log4net.config文件,将日志文件输出修改为:
这里还要修改
最后是终极大招,把SELinux禁用了,世界终于安宁了。
至此,SimpleCmsWithAbp终于可以顺利的在Linux上运行了。
Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之配置IdentityServer
Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之数据迁移
Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之添加实体
Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之显示登录视图
Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之验证码
Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之登录、权限、菜单和登出
Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之文章管理
Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之文件上传
Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之部署到Linux
在CentOS上使用VS Code调试.Net Core应用程序
在《Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之部署到Linux 》一文中,部署的应用程序存在许多小问题,于是决定直接在Linux系统上使用VS Code来调试,看能不能解决这些问题。
在开始前,首先要做的是在虚拟机上装一个带有图形界面的CentOS。系统安装好以后,按照部署一文设置好Apache、MariaDB和.Net Core,然后开始安装VS Code,安装步骤可以参考文章《Running VS Code on Linux》。在这里主要参考的就是
RHEL, Fedora and CentOS based distributions这一节。主要步骤就是先安装签名和存储,命令如下:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
然后是安装VS Code:
yum check-update sudo yum install code
安装完成后,在图像界面中打开终端窗口,输入
code或在应用程序→编程或附件中就可能看到
Visual Studio Code的选项了。VS Code运行后会看到如下图所示的效果。
VS Code安装好以后,根据文章,最好还要装Node.js,根据《Installing Node.js via package manager》一文,安装步骤是,先下载
Node.js 9:
curl --silent --location https://rpm.nodesource.com/setup_9.x | sudo bash -
然后安装:
sudo yum -y install nodejs
最好安装上生成工具:
sudo yum install gcc-c++ make
到目前为止,VS Code只是一个文本编辑工具而已,还不具备开发C#应用程序的一些所需功能,这个需要根据《Working with C#》一文来武装VS Code,其实就是安装一些扩展。在VS Code界面中,单击最左边的图标按钮中的最后一个图标来安装扩展。主要的扩展包括
C#、
Code Runner、
C# Extensions和
C# FixFormat。
VS Code在第一次打开的时候会检查是否已经安装了Git,如果没有会提示安装Git。如果直接使用Yum安装,安装的是1.8版本的,不符合VS Code所需的版本要求2.1以上的要求,这个只能编译安装了,具体安装步骤可参考《How to Install Git 2.15 on CentOS/RHEL 7/6, Fedora 27/26/25 》这篇文章。
一切准备就绪,现在可将应用程序项目通过SFTP上传到服务器,然后用VS Code打开项目文件夹了。在项目打开后,VS Code会自动恢复项目的依赖项。等依赖项都恢复后,先要做的是修改两个项目的appsettings.json文件,把数据库连接修改好。修改完成后,按CTRL+`键打开终端窗口,在窗口中输入以下命令执行迁移项目:
dotnet run --project "/home/dq/SimpleCmsWithAbp/src/SimpleCmsWithAbp.Migrator/SimpleCmsWithAbp.Migrator.csproj"
在提示中输入y开始迁移数据库。
数据库迁移后,在文件列表中,在
SimpleCmsWithAbp.Web.Host.csproj文件上单击鼠标右键选择
Run Code运行项目,项目运行后,使用POSTMAN来发送一个获取验证码的请求,这时候会在输出中看到错误信息,又或者打开
App_Data\Logs\Logs.txt文件,可以发现错误是
Unable to load DLL 'gdiplus'。这个库在上一文安装过,但没有解决问题,再试试看看。这次不打算编译安装了,在《libgdiplus-2.10-9.el7.x86_64.rpm》找到了yum的安装方式,具体步骤是先添加
EPEL repository,命令如下:
yum -y install epel-release
然后安装:
yum install libgdiplus
安装以后,还是出现错误,还是找不到DLL,然后通过以下命令将gdiplus.dll链接为libgdiplus.so:
ln -s /usr//lib64/libgdiplus.so gdiplus.dll
终于可以顺利获取到验证码了,问题解决。
现在在客户端可以顺利登录了。下面要解决的是上传文件的路径问题,在Application项目,将
MediaAppService.cs中设置上传路径的代码修改为以下代码:
var dir = $"/var/www/mediae/{path}";
好了,再测试,这时候提示的权限问题了。这个好解决,将
\var\www\mediae文件夹的用户和用户组设置为
apache:apache,将权限设置为
766就顺利通过了。
调试好以后,就可以将项目发布到
\var\www\cms文件夹了,在终端运行以下命令就可以了:
dotnet publish --project "/home/dq/SimpleCmsWithAbp/src/SimpleCmsWithAbp.Migrator/SimpleCmsWithAbp.Web.Host.csproj" -o "/var/www/cms"
项目发布以后,修改appsettings.json里的设置,修改log4net.config文件,将日志文件输出修改为:
<file value="/var/log/httpd/cms-logs.txt" />
这里还要修改
/var/log/httpd文件夹的用户和用户组,不然日志不能写入。
最后是终极大招,把SELinux禁用了,世界终于安宁了。
至此,SimpleCmsWithAbp终于可以顺利的在Linux上运行了。
相关文章推荐
- 使用VS Code开发 调试.NET Core 应用程序
- 使用vscode开发调试.net core应用程序并部署到Linux跨平台
- 使用VS Code开发 调试.NET Core 应用程序
- 使用VS Code开发 调试.NET Core 应用程序
- .NET Core快速入门教程 4、使用VS Code开发.NET Core控制台应用程序
- 使用VS Code从零开始开发调试.NET Core 1.1
- 使用VS Code开发调试.NET Core 2.0
- 使用VS Code开发调试.NET Core 多项目
- 使用VS Code从零开始开发调试.NET Core 1.0
- 使用VS Code从零开始开发调试.NET Core 1.0
- 使用VS Code开发调试.NET Core 2.0
- .NET Core快速入门教程 5、使用VS Code进行C#代码调试的技巧
- 使用VS Code开发调试.NET Core 多项目
- .NET Core 1.0 CentOS7 尝试(三、使用VSCode创建一个Web应用)
- .NET Core快速入门教程 5、使用VS Code进行C#代码调试的技巧
- 整理中:使用 Visual Studio Code (vscode) 编写、运行、 调试 Java 应用程序
- 使用VS Code从零开始开发调试.NET Core 1.0
- 使用VS Code从零开始开发调试.NET Core 1.1
- 使用vscode对c进行调试
- 使用VS Code开发AngularJS 2 第一个应用程序