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

news/2024/5/10 10:31:04/文章来源:https://blog.csdn.net/weixin_34025051/article/details/89655773

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,完美~

img_8f0a90f3cbaa0e044fb8bf7b13c4317b.jpe

文章作者:原子蛋
文章出处:https://www.cnblogs.com/lizzie-xhu/
个人网站:https://www.lancel0t.cn/
个人博客:https://blog.lancel0t.cn/
微信公众号:原子蛋Live+
扫一扫左侧的二维码(或者长按识别二维码),关注本人微信公共号,获取更多资源。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

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

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

相关文章

如何快速找出哪里不符合xml格式_网站入侵:黑客必学知识点 “你所不知道的xxe攻击漏洞”...

1、xxe攻击漏洞的简介何为XXE漏洞?XXE是指xml外部实体攻击,Xxe漏洞全称xml external entity injection即xml外部实体注入漏洞,xxe漏洞发生在应用程序解析xml输入时,没有禁止外部实体的加载,导致可加载恶意外部文件&…

网站经常间歇性访问不了_「干货」IT人员经常访问的国外技术交流网站汇总

搞技术的,如果想更高提升自身技能水平,英语这关是逃不了的。——某位不愿透露姓名的在线翻译loser技术人员经常会在各种技术交流社区游逛,大家互相学习、交流、分享、帮助。互联网拉近了地球人的距离,让全世界的技术人员可以聚集在…

搜索引擎提交工具_如何有效的提高网站在搜索引擎上的收录?

企业建站的目的是为了获取流量,搜索引擎作为网站流量最主要的来源,搜索引擎优化成为了网站最为重要的工作,收录越多的网站获取流量和排名的几率也就会越大,现在做优化就是要想尽各种办法提高网站的收录,随着搜索引擎的…

tensorboard无法访问此网站

元学习论文总结||小样本学习论文总结 2017-2019年计算机视觉顶会文章收录 AAAI2017-2019 CVPR2017-2019 ECCV2018 ICCV2017-2019 ICLR2017-2019 NIPS2017-2019 使用程序网址:http://K12XJM22CBKN6KF:6006 打开网页时: 一个办法:将网址改为&a…

如何解决网站可能存在webshell网页木马,阿里云网站木马后门文件提醒

早上刚上班就有新客户咨询我们Sinesafe安全公司反映说收到一条阿里云的短信过来,内容为:网站木马文件提醒018-06-20 09:20:49尊敬的***网:您的虚拟主机中有文件触发了安全防护报警规则,可能存在webshell网页木马,您可以…

HTTPS时代的到来是大势所趋!阿里云CDN如何助力企业网站进入HTTPS时代

2019独角兽企业重金招聘Python工程师标准>>> 摘要:在2015年,天猫和淘宝已经实现了全站HTTPS,并且在2015年底,阿里云CDN HTTPS产品化并且开始全面对外,并且为越来越多的客户提供HTTPS服务。无论是从阿里内部…

帝国CMS7.2 手机网站使用教程

下面为详细操作步骤:一、设置所有访问端统一的访问地址后台>系统>系统参数设置:网站地址:这个地址一定不要加上域名,比如设置为:/(默认安装后也是没有加上域名,如果自行修改过&#xff0c…

python 爬取种子_Python爬虫框架Scrapy 学习笔记 2 ----- 爬取Mininova网站种子文件信息...

1. 任务描述目标网站截图:-------------------------------------可以看到种子文件的列表,这些链接的url可以用正则表达式表示为: /tor/\d详情页截图截图中的:资源名称, 资源大小,和资源描述就是我们要抓取的信息。2. …

基于django的视频点播网站开发-step4-首页功能

在本讲中,我们开始首页功能的开发,在开发过程中,大家将会学习到Django中的通用视图类、分页对象paginator以及foreignKey外键的使用。 效果演示 整体功能 大家可先通过 网站演示地址 浏览一下首页的效果。我们首页呢,比较简洁大方…

连接云服务器_Windows server 2012 云服务器建站教程 (1):远程连接桌面+IIS服务器安装...

服务器:Windows server 2012 阿里云服务器发布网站的过程中,实在是踩了太多的坑了,通过云服务器发布一个http://asp.net真是费劲儿,如果你要是需要访问cshtml格式的网站,会更加费劲儿一点。1.使用远程桌面连接云服务器…

大型网站技术架构(六)网站的伸缩性架构

2019独角兽企业重金招聘Python工程师标准>>> 网站系统的伸缩性架构最重要的技术手段就是使用服务器集群功能,通过不断地向集群中添加服务器来增强整个集群的处理能力。“伸”即网站的规模和服务器的规模总是在不断扩大。 1、网站架构的伸缩性设计 网站的…

linux samba启动连接不上,CentOS中Samba配置后始终连不上解决_Linux教程_Linux公社-Linux系统门户网站 正解...

按照网上的办法改了/etc/samba/smb.conf配置文件,结果在Win7里面就是连不上,后来发现是防火墙的问题。有两个命令必须要执行:1、将SELinux设置成disabled或者permissivesetenforce 02、关闭防火墙服务service iptables stop若SElinux啟用中&a…

php网站在哪儿添加文章_php添加文章时生成静态HTML文章的实现代码

PHP生成静态文章HTML,有批量的生成,但比较标准的应该是在添加文章时就生成HTML文章,编辑时再重新生成HTML文章,删除文章时同样也样删除多余出来的HTML文章,这时批量生成就显得有点力不从心了,下面就介绍一下PHP在添加文…

php多网址文章发布,如何设置发布到多个网站-批量发布文章到站群

软件自定义API接口发布,是针对所有网站类型的发布方法,是最灵活的一种发布模式,当你的网站没有软件上的那几个常用网站程序,就可以考虑这种方法了,此方法通用,但是也需要一定的编程知识。下面跟我一步步设置…

怎么测试本地网页在不同分辨率下电脑显示效果_好的响应式网站应该怎么做?...

响应式网站设计开发,也有叫做响应的Web设计,或着叫响应式网页设计,响应式网站设计开发的目的是为不同设备提供的多种适配的展现形式。一个网站,为了适应不同的用户的不同客户端的查看,通过响应式网站制作过程提供各种适…

jquery导入数据_【Python成长之路】从 零做网站开发 -- 基于Flask和JQuery,实现表格管理平台...

【写在前面】你要开发网站? 嗯。。会Flask吗? 什么东西,没听过。。。会JQuery吗? 是python的库吗 ?那你会什么? 我会F12打开网站好吧,那我们来写个简单的表格管理平台。基于Flask框架和JQuery实…

web前端项目实例网站_推荐一个前端开源项目 CDN网站

前面学习到什么是CDN,全称是Content Delivery Network,即内容分发网络。CDN的通俗理解就是网站加速,CPU均衡负载。CDN的基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定&#…

win10打不开网络上的计算机,[pc玩家]Windows10中打不开网站的问题怎么解决?

当用户在浏览器中输入网站的域名时,此时将发送请求到DNS服务器以识别连接到该主机名的IP地址,只有正确解析了IP地址才会打开你想要访问的网站。但有时你会收到一个错误消息,告诉你DNS服务器没有响应。要解决这个问题,你可以尝试几…

有域名有服务器没有网站可以备案吗,只有域名没有服务器可以备案吗

只有域名没有服务器可以备案吗 内容精选换一换成功访问网站包含以下两个阶段,这两个阶段缺一不可,需要同时成功才能正常访问网站,如图1所示。阶段一:DNS根据访问请求中的域名解析出对应的IP地址。阶段二:访问网站服务器…

js将图片转换为base64_为网站添加图片 WebP 自动转换功能

最近这几天在网上闲逛时,发现了一个名叫 WebP_Server_Go 的新项目,可以无缝将网站上已有图片转换为 WebP 格式输出,同时不改变原始图片链接,看起来挺适合我个人博客的需求,使用也比较简单。网站使用 WebP 格式图片的好…