ASP.NET Core 一步步搭建个人网站(1)_环境搭建

news/2024/5/12 18:56:56/文章来源:https://blog.csdn.net/weixin_30767835/article/details/97804605

---恢复内容开始---

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用户启用;

第5步,先退出,再用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)_环境搭建

阅读目录

  • 一、部署环境
    • 1.SQL Server安装与配置
    • 2.服务器防火墙配置
    • 3.测试远程访问数据库
    • 4. IIS环境和.NET Core Windows Server Hosting配置
  • 二、 创建Asp.net Core Web项目
  • 三、发布网站到服务器

相关资源

  • 在线演示
  • GitHub源码
欢迎大家前往我的个人博客,获取更好的阅读体验和更多分享文章~

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用户启用;

第5步,先退出,再用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,完美~

转载于:https://www.cnblogs.com/henry520/p/9466794.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_771616.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

12 个最佳的免费学习编程的游戏网站

source: http://mp.weixin.qq.com/s?__bizMzI1NDQwNDYyMg&mid2247483853&idx1&sn7aaa75fca3865869c438cfa6f8c12865&chksme9c4f0acdeb379ba0c205ab24f3bcb3e0e3bf79083ca2aeb836863fcf2777c36e9969590880f&scene0#wechat_redirect 12 个最佳的免费学习编程…

大型网站技术架构(二)架构模式

2019独角兽企业重金招聘Python工程师标准>>> 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠…

3套响应式布局html欧美网站模板全站源码下载

1、css3html5响应式布局网站模板下载 下载资源 2、APP strap响应式布局网站_html响应式网站模板下载 下载资源 3、黑色win8风格网站模板_九宫格布局html网页模板下载 下载资源转载于:https://www.cnblogs.com/jsfoot/p/3145877.html

数据如何驱动网站页面设计和优化

电商行业已经进入红海阶段机会主义不在技术洼地被填平精细化运营和数据化管理已是电商决策者的必修课。电商企业的兴衰荣辱总能最先在数据层面窥见端倪甚至可预见是否养痈成患。 随着互联网业态不断深入发展如今在互联网含移动互联网跟电力一样稀松平常作为生活、工作刚需之时数…

程序员面试过关必备网站,你用过几个?

对于程序员而言,面试所谓是人生重要的一件事情,在这之前,还是有必要刷一些编程面试题,为面试做好充足的准备! 今天小编给大家分享一些面试相关网站,给大家面试来一波神助攻噢! 0.Reddit 在Red…

Java程序员常去的学习网站,等你来收藏

在程序员的职业生涯中,似乎这一生追随程序员的必定是和学习脱不了关系的,那么提升自身能力是职业生涯上必不可少的。小编也不示弱哦,今天给大家带来几个能学到知识的网站,网上的很多优质网站完全可以满足大多数人的自学需要&#…

程序员必备5个编程自学网站,你都用到过吗?

有的人觉得编程难学,而有的人,编程对人家来说就是小菜一叠! 其实想学好编程,并没有那么难 分享5个程序员必备编程自学网站,看到大家都没有用过 赶紧来看一看吧 小编是一个有着5年工作经验的java程序员,对…

Java程序员必须掌握的网站知识 —— HTTP

介绍 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件…

一步一步SharePoint 2007之八:允许所有域用户访问网站

一步一步SharePoint 2007之八:允许所有域用户访问网站摘要上一篇文章让我在同事们面前丢尽了脸,真是郁闷啊,到现在还是红红的:)没办法啊,咱脸皮儿薄呀!(呵呵,没人扔臭鸡蛋过来吧?&am…

程序员必备的几大实用小网站

很多人想要从事IT行业,可是却没有志同道合的朋友,以及学习的途径,(当然,我们万门有许多编程语言课),所以分享几个程序员必备的比较实用而且酷炫的网站。 “Hello World”大全 https://hellowor…

帮程序员减压放松的 10 个良心网站

工作之余,不妨放下微博跟朋友圈,来这10个网站感受一下看着就醉了的情境:「念完往上一推音乐键,我往后一靠,潮乎乎的软皮耳机里头,音乐排山倒海。」今天推荐的网站,利用代入感强的图片与音频&…

资深程序员总结了9个java学习需要收藏的网站!

第一个:JavaSED 这是1个很大的资源类型的网站,涉及了很多Java代码案例。这个网站也可以查看很多Java API类源代码,值得收藏! 第二个:Code Project Code Project:1个可以够适合程序员全部需求的论坛。 第三…

Windows 8实现所有微软网站免登录

犹豫了非常久,最终还是把Windows 8装到了工作用的笔记本中,但由于本本比较老了,本来以为可能获得的体验不会很好,但经历了10多分钟的安装后,发现Windows 8确实非常的强大!首先是内置的hyper-V功能&#xff…

Apsara Clouder云计算专项技能认证的网站建设-部署与发布,你知道吗?

2019独角兽企业重金招聘Python工程师标准>>> 建站认证可以帮助学员掌握如何将一个本地已经设计好的静态网站发布到Internet公共互联网,通过自己的域名让全世界的网民访问到,并且教会学员如何完成工信部的ICP备案,实现监管合规。 0…

程序员常逛的几大网站!

1、Github gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。 2、w3school 领先的 Web 技术教程 - 全部免费在 w3school,你可以找到你所需要的所有的网站建设教程。 小编相信这里有很…

Flash互动网站设计学习-Flash发展历史

Flash互动网站设计学习历程(一) Flash发展历史 打开Flash网站,我就被其绚丽的视觉效果、小巧的体积、不用安装插件等优势吸引了,我决定好好研究一番,写此文章主要是激励我能坚持学习FALSH互动和加深对知识的理解。 Flash发展历程 Flash最早期…

程序员常用网站:让代码更简单

说起程序员,总有那么几个网站是程序员不可或缺的,小编办公室的程序员就常常用这几款网站,你用过么? Stack Overflow 这个网站,就算不常用,每次搜索编程相关都能看见它。当你遇到任何编程问题,…

AWWWB 网站克隆器 更新到1.01 修正错误

测试克隆网站: http://www.simdoo.com/default.aspx 分析UTF-8等编码的网页时会出现此问题,现已修正。 新版下载地址:http://www.uushare.com/user/icesee/file/2249659 本文转自斯克迪亚博客园博客,原文链接:http://w…

如何快速搭建一个社交网站平台?

2019独角兽企业重金招聘Python工程师标准>>> 截至到2017年12月,我国的网民规模已经达到了7.72亿,而手机网民规模也达7.53亿,2017年网络社交娱乐类应用用户规模均保持了高速增长,同时电子商务、网络游戏、网络广告收入水…

美帝垃圾评论大战:一堆马甲狂刷脏话,致使FCC网站崩溃

本文讲的是美帝垃圾评论大战:一堆马甲狂刷脏话,致使FCC网站崩溃,一周前,HBO 脱口秀节目 Last Week Tonight 的主持人 John Oliver 在节目中呼吁观众通过域名gofccyourself.com 到美国联邦通信委员会(FCC)的…