您的位置:首页 > 编程语言 > ASP

关于云服务器的ASP.Net MVC网站实现被外网访问

2018-03-30 21:38 281 查看
以下主要以网站挂在云服务器(腾讯云)为例子,使用的云主机的操作系统类型是比较简单的Windows server 2008 r2。由于方便新手学习以及做笔记,该示范只是简单的创建一个没有做任何改动的项目,没有安装以及实现数据库的功能,高手请忽略本文章。不过为了假设项目成功连接上数据库,在发布网站之前还要修改相关的代码,否则在服务器即使成功大搭建好但是访问数据库失败,详情请看以下步骤。
实现之前的3大要求:
1.拥有云服务器以及域名
2.域名已经备案了的
3.在自己的电脑用VS写好了的ASP.Net MVC项目
搭建网站的三大步骤
一.在自己的电脑把项目发布成网站
二.域名解析以及检查是否解析成功
三.在云服务器的相关操作
把域名绑定网站以及设置相关重要的信息
如果按照以下步骤进行操作,就可以搭建成属于自己的网站了。
一.在自己的电脑把项目发布成网站
1.在VS写好项目之后,在发布之前,如果需要连接sql数据库的话,需要修改一些信息(如果没有,可忽略本第1步骤):
在工程里,打开Web.config文件(不是View里面的Web.config),在configuration里面添加conectionString这字符串节点,如下图:



代码: <connectionStrings>

<add name="TestConnection" connectionString="Data Source=DESKTOP-1OJ750C\SQLEXPRESS;Initial Catalog=MvcMovie;
Persist Security Info=True;User ID=chen;Password=my123456" providerName="System.Data.SqlClient"/>

</connectionStrings>name:是连接数据的名称标识   Data Source=“这是数据库服务器名称,打开SQL Server Management Studio就可以看到”
Initial Catalog="数据库名称" 
如何链接sql server数据库,链接:暂未做笔记
如何使用sql server 自己创建的账户登录的链接:https://blog.csdn.net/u010333076/article/details/44752713
如果创建不了账户,点击桌面左下角“开始”,选择“服务”,找到服务名称“MSSQLSERVER,选择中并右键“属性”,在“安全”添加“组和用户名”寻找"NETWORK SERVCE”,然后设置为"完全控制”的权限。
注意:
1.在云服务器的数据库文件中,要修改权限,防止外网浏览网页时,禁止获取数据库的数据,例如我的数据库文件:



修改两个文件(.mdf和.log)权限,把“IIS_IUSRS ”添加上去并设置为“完全控制”(或者随意)
2.在VS发布成网站的教程链接:
https://www.cnblogs.com/potential/p/3751426.html
https://jingyan.baidu.com/article/92255446574e11851648f4e4.html

http://www.th7.cn/Program/net/201403/183756.shtml

这是笔者亲自整合的在vs发布网站方式:https://blog.csdn.net/chen1083376511/article/details/79752139
注意事项:
1.在IIS管理器里面的“ISAP和CGI限制”,添加两个ISAPI或CGI限制。
一定要填写以下相关的两个路径(这是关键的一步):
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll

注意:添加完成之后,要把“限制”设置成“允许”



2.添加“应用程序池”,选择的托管管道模式是“集成”



3.最好把发布的网站文件夹存放在云服务器的C:\inetpub\wwwroot的目录下,避免浏览网站时默认寻找wwwroot下的文件。
4最好添加网站时,选择的应用程序池是“ASP.NET v4.0”(你添加应用程序池的.NET FRAMWORK4.0,我这里的名称为“ASP.NET v4.0”),避免浏览错误。
5.网站的文件夹的权限最好设置“IIS_IUSRS”相关的权限为“完全控制”,否则IIS可能因为权限无法部署网站。
右键点击网站下的你的网站,选择“编辑权限”,在“安全”设置相关信息,如图:



6.设置默认文档,如果不设置自的网站首页的文件,浏览文件会以文件夹目录的形式展示出来的。



7.检查以下“ISAPI筛选器”有没有以下两个东西:



8.网站与域名绑定



以上基本完成了搭建网站,建议在域名解析之后,在外网过一段时间测试一下(一分钟内)。
二.域名解析以及检查是否解析成功
1.在腾讯云首页,登录云主机,找到“云服务器”-->“安全组”,查看80端口或者你设置的相应的端口有没有放通。
2.找到“域名管理”,在“我的域名"页面中,点击“解析”,转变另一个页面,选择“添加记录”:
主机记录:www或者@     记录类型:一般是A类型   线路:一般是默认
记录值:填写你的云主机的公网IP
如果你不想那么麻烦,直接点击“新手快速添加",直接填写记录值就可以了。
笔者访问的博客链接:https://www.cnblogs.com/tine/p/5877365.html
3.以下验证域名是否可访问:打开自己的电脑,执行cmd控制台,输入“ping   你的域名”,如果出现以下情况:



说明没有ping通,再次查看解析的主机公网IP对不对。
如果出现以下情况:



说明域名已经成功与云服务器绑定在一起了。
我们可以访问第三方网站“卡卡网”查看DNS,检查一下自己的域名有没有解析成功,点击链接:http://www.webkaka.com/dns/ 
1.在“DNS”栏目那里。输入你的域名,然后下拉查看“DNS解析”的结果:



如果解析成功之后,先别急着ping来验证,等过段时间(也许几分钟就可以了)尝试一下(因为本地电脑没有来得及获取更新的网络信息)
三.在云服务器的相关操作
浏览网站可能会有以下几个错误:
错误:调用 LoadLibraryEx 失败,在 ISAPI 筛选器 "c:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet_filter.
解决的方法:开始 -> 运行 -> inetmgr -> 应用程序池 -> 找到 我的网站对象的 程序池 -> 右键 -> 高级设置 -> 启用32位应用程序 由 false 改为 true



原因链接:https://blog.csdn.net/mazhaojuan/article/details/10041553
错误:服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。
解决的链接:https://www.cnblogs.com/xrtd/p/3704532.html
注意:以上的解决的链接有三种原因,推荐先用原因1的方法检查一下哪里出错了。
在“网站”栏目下,右键点击你的网站名称,选择“浏览”,即可进入网站的文件夹,或者直接在wwwroot进入你发布的网站,用打记事本开文件夹里面的Web.config,找到<customErrors mode="On"/>, 设置为mode ="Off", 修改成功之后,然后浏览一下网页,即可查看详细问题信息。例如我之前的是数据库账号登录访问的权限问题,网页显示登录数据库账号登录失败。所以原因是不定的,如果实在不知道问题在哪里,就尝试一下原因2和3.

IIS发布的网站常见的问题汇总的链接:https://www.cnblogs.com/hongmaju/p/6800403.html

以上基本上都是笔者遇见的问题以及一些相关操作。好了,笔者就此停笔,如有不当之处,原谅作为刚刚接触ASP.net mvc不久的小白的笔者粗浅之见,欢迎大家进行批评与指正。^_^
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: