ASP.NET Core 一步步搭建个人网站(1)_环境搭建
ASP.NET Core2.0发布有一阵子了,这是.NET 开源跨平台的一个重大里程碑, 也意味着比1.0版本要更加成熟。目前.net core具有开源、跨平台、灵活部署、模块化架构等等特性,吸引着一大批开发者。笔者也开始加入拥抱.net core大军,那就搭建一个个人网站吧!
首先申明的是,这应该是一个长期的项目,我会不定期的更新,持续集成,慢慢的把想要的新功能叠加到网站上。这也是积累的过程,我希望通过文章分享给博友们,也欢迎你们关注我,与我一同讨论,共同进步!
话不多说,咱们开始~
部署环境
服务器环境
- 操作系统:Windows Server 2008 R2
- 数据库:SQL Server 2012
开发环境
- VS 2017
这里为了搭建公网可以访问的网站,服务器我用的是XX云服务器(自带Server 2008系统,提供公网IP)。当然大家只是想练练手不想花钱,也没关系,本地运行调试也好,有些远程配置内容可以直接跳过。
有了服务器,我们还需要搭建数据库。这里我选的是SQL Server 2012 Express版(带数据库管理工具,大概700M),对应中小型应用就够了。主要因为云服务器CPU、内存、磁盘是在太珍贵了,尽量够用就好,不用最新或功能最全的版本。
SQL Server安装与配置
运行SQL Server 安装包,按照提示一步步安装即可,默认安装是包含客户单SDK和管理工具,安装完毕后,SQL Server会自动生成一个数据库实例;打开菜单中SQL Server Management Studio,连接数据库实例,可以看到能正常访问数据库。当然,这样访问本地的数据库没问题,但是我们需要外网远程访问数据库,所以需要做些配置:
第1步,我们选中数据库实例,右键-->属性-->选中 安全性
因为远程访问就不能仅仅通过Windows身份验证了,这里我们选中SQL Server和Windows身份验证模式;
第2步,选中 连接,确认“允许远程连接到此服务器”选中;
第3步,数据库实例-->安全性-->登录名-->sa右键属性
将超级管理员sa密码设置一下,并将sa用户启用;
第6步,我们可以关闭SQL Server Management Studio,打开SQL Server 配置管理器
选中MSSQLSERVER的的协议,将TCP/IP协议状态改成已启用(默认是禁用),完毕后我们重启SQL Server;
TCP/IP属性,切换IP地址页签,确认TCP端口是否是1433,如果不是,如下配置:
至此,SQL Server的相关配置已经设置完毕,但还是不能支持远程访问,我们还需要设置一下服务器防火墙。
服务器防火墙配置
打开服务器管理器,选中防火墙配置,里面有“入站规则”,点击进去;
选中“新建规则...”
规则类型选择端口:
协议选择TCP协议,端口号输入1433(SQL Server默认端口)
下一步,选择“允许连接”
下一步,规则配置文件,全选
最后,输入规则名称,取名“SQL Server 端口”,点击完成,可以看到我们的添加的规则已在防火墙允许访问范围了。
测试远程访问数据库
在本地机器上打开VS 2017,找到视图-服务器资源管理器--数据连接,右键-->添加连接;
更改数据源,选择Microsoft SQL Server ;
服务器名,输入云服务器的IP地址,选择SQL Server身份验证,敲入之前设置的用户名和密码,就可以加载远程数据库实例下的所有数据库。这样我们连远程数据库就没有问题了。
IIS环境和.NET Core Windows Server Hosting配置
为了在服务器上运行我们的网站,首先需要配置IIS。
Server 2008上,添加"角色",选中“Web 服务器”,完成IIS安装。
一般的.net发布的网站,现在就可以配置运行了,但是.net core与传统的Asp.Net程序不同,Asp.Net Core App使用了Kestrel Server。Kestrel是一个跨平台的Web Server,与IIS一样负责请求的监听、接收和响应,但没有IIS丰富的管理功能,仍需要由IIS来处理一些前置工作。
所以这块我们还需要安装IIS到Kestrel server的反向代理:.NET Core Windows Server Hosting bundle
安装完成后,需要重启一下机器,然后我们就可以正式的搭.net core网站了。
创建Asp.net Core Web项目
准备工作做完后,我们终于可以开始建项目了,打开VS 2017,文件-->项目,创建Asp.net Core Web项目,点击确定;
这里默认选择.net core 2.0环境,Web 应用程序(模型视图控制器),注意,这里的身份验证,我选择了个人用户账户,主要是方便用户和角色管理,和身份验证。后面有单独的章节,专门跟大家探讨一下这块的知识。确定后,VS 自动帮我们生成好可运行的项目代码。
这时候,我们就要通过连接远程服务器上的数据库,通过Code First方式,生成数据库表结构了。
先在数据库中实例中,创建一个数据库,命名为MyWebSite:
在本地VS中,通过之前服务器资源管理器的配置,我们看到可以连接MyWebSite这个数据库,并测试连接成功。
点确定建立数据连接,右键-->属性,可以查看连接字符串,拷贝一下这个连接字符串
Data Source=180.*.*.89;Initial Catalog=MyWebSite;User ID=sa;Password=***********
打开项目配置文件appsettings.json:
把默认的连接字符串用上面字符串替换如下:
"ConnectionStrings": {
"DefaultConnection": "Data Source=180.*.*.89;Initial Catalog=MyWebSite;User ID=sa;Password=*******"
},
这样,数据库连接就配置好了。因为选择的是个人身份验证的项目,所以VS帮我们生成好了对应的实体类和数据库迁移,我们所要做的,是要数据库更新,来生成相应的表结构。
打开工具-->Nuget包管理器-->程序包管理器控制台
输入update-database并运行,成功后,我们回头看看远程的MyWebSite数据库,帮我们自动生成了所有的表结构
接下来,我们ctrl+F5运行一下,网站正常启动如下:
发布网站到服务器
网站本地运行没问题了,我们继续后续发布的操作,项目右键,选择“发布...”,暂时我们选择本地文件夹(后面项目管理的时候,我们再配置远程发布),将发布后生成的文件拷贝到云服务器上,这里放到c:\MyWebSite目录中。
IIS管理中,选中网站,把默认的Default Web Site停用,因为它占用了80端口,跟我们要搭建的冲突;
右键-->添加网站
如下图配置,用80端口,HTTP默认访问端口。
点确定,这样我们的网站至此,成功搭建!
用用浏览器,输入外网IP地址访问我们的云服务器(如果不能正常访问,请检查防火墙是否开放了80端口,按照之前设置一下就行):
ok,完美~
ASP.NET Core 一步步搭建个人网站(1)_环境搭建的更多相关文章
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
项目开发中的一些注意事项以及技巧总结 1.jquery采用ajax向后端请求时,MVC框架并不能返回View的数据,也就是一般我们使用View().PartialView()等,只能返回json以 ...
- JM-1 手机网站开发测试环境搭建
JM-1 手机网站开发测试环境搭建 一.总结 一句话总结:WEB服务器环境可实现局域网内轻松访问.360wifi可以实现局域网. 二.微网站开发环境: 1.把微网站放到本机wamp环境下,用pc浏览器 ...
- Robot Framework自动化_环境搭建以及第一个用例
Robot Framework自动化_环境搭建以及第一个脚本 培训老师:肖能尤 2016/06/07 课程目的 一.Robot framework 环境搭建以及第一个脚本 课程内容 1 安装前准 ...
- PHP环境搭建-Windows系统下PHP环境搭建
1.PHP环境搭建的前提是 Apache HTTP Server (Apache 服务器)已经安装部署成功,并可以正常访问到服务器的主页面.Apache HTTP Server 的安装部署已经在上一篇 ...
- ASP.NET Core 一步步搭建个人网站(持续更新中~~~)
摘要 ASP.NET Core2.0发布有一阵子了,这是.NET 开源跨平台的一个重大里程碑, 也意味着比1.0版本要更加成熟.目前.net core具有开源.跨平台.灵活部署.模块化架构等等特性,吸 ...
- ASP.NET Core 一步步搭建个人网站(7)_Linux系统移植
摘要 考虑我们为什么要选择.NET Core? 因为它面向的是高性能服务器开发,抛却了 AspNet 的臃肿组件,非常轻量,加上微软的跨平台战略,对 Docker 的亲和性,对于开发人员也非常友好,所 ...
- asp.net core下的如何给网站做安全设置
首先,我们来看下stack overflow网站的请求头文件: 可以看到一些我们熟悉或是陌生的HTTP头部文件字段.在这里我们在对HTTP输入流的头部文件中,做一些基本的防护.首先要明确,既然我们是对 ...
- 银河麒麟V10安装ASP.NET Core并配置Supervisor让网站开机自动运行
银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化.云计算.大数据.工业互联网时代对主机系统可靠性.安全性.性能.扩展性和实时性的需求,依据CMMI 5级标准研制的提供内生安全.云原生支 ...
- 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(八)-- 多环境开发
本篇将演示Asp.Net Core如何在多环境下进行开发适配. 在一个正规的开发流程里,软件开发部署将要经过三个阶段:开发.测试.上线,对应了三个环境:开发.测试.生产.在不同的环境里,需要编写不同的 ...
随机推荐
- JS日历插件 - My97 DatePicker用法详解
一.简介 1. 注意事项 (1)My97DatePicker目录是一个整体,不可破坏里面的目录结构,也不可对里面的文件改名,可以改目录名: (2)各目录及文件的用途: WdatePicker.js 配 ...
- Oracle数据库备份及还原
Oracle数据库备份 1:找到Oracle安装路径我的就是默认C盘 C:\app\wdjqc\admin\orcl\adump 2:执行文件:back.bat 文件内容如下: @echo off ...
- [Swift]LeetCode308. 二维区域和检索 - 可变 $ Range Sum Query 2D - Mutable
Given a 2D matrix matrix, find the sum of the elements inside the rectangle defined by its upper lef ...
- [CERC2017] Intrinsic Interval
首先理清这奇葩题意表述 给出一个\(1\)到\(n\)的排列\(p[]\)和\(m\)次询问,每次询问覆盖区间\([l,r]\)的最小区间\([a,b]\),满足\([a,b]\)内的元素排序后是连续 ...
- nfs服务启动失败:Failed to start NFS status monitor for NFSv2/3 locking..
今天碰到个问题,服务器重启后,nfs服务就启动不了了,关闭都关不了.查看系统日志报下面的错: Aug 10 17:08:53 prod-r3-slt-s-01 systemd: Started Pre ...
- 有了这 4 大特性,CDN 好用到飞起
随着 CDN 市场的快速发展和网络新技术的不断涌现,目前的 CDN 已不仅仅是当初简单的内容分发,同时也是新特性研发.新技术推广及实践的平台.这些新技术.新特性,或者能够保障 CDN 安全性,或是提升 ...
- bind(),unbind(),hover(),toggle(),animate()
First.bind() bind(Type,fn) type:click/mouseover/mouseout fn:functionsecond.unbind() unbind(Type,fn) ...
- Spring Security OAuth2 SSO
通常公司肯定不止一个系统,每个系统都需要进行认证和权限控制,不可能每个每个系统都自己去写,这个时候需要把登录单独提出来 登录和授权是统一的 业务系统该怎么写还怎么写 最近学习了一下Spring Sec ...
- Spring Boot OAuth 2.0 客户端
在上一篇<OAuth 2.0 授权码请求>中我们已经可以获取到access_token了,本节将使用客户端来访问远程资源 配置资源服务器 授权服务器负责生成并发放访问令牌(access_t ...
- 四则运算4(Android版)
队员:王楗 http://home.cnblogs.com/u/wangjianly/ 结组照: