最近有需要部署一个asp.net网站在云上,我手里有个腾讯云的服务器,本来服务器的系统是ubuntu的,但在部署过程中不断出现问题,所以我还是换了个windows的系统,然而问题还是有很多,所幸最后部署成功了,所以写博客记录一下,方便他人。
在部署过程中,我也参考了很多人的经验,在此表示感谢,然后我会把他们的经验贴在下面,并补充一些我自己的个人经验。
1,在服务器上配置asp.net的IIS的服务,可参考:https://blog.csdn.net/shenyou_fu/article/details/77755463
2,ASP.NET MVC网站部署在阿里云服务器,可参考:https://blog.csdn.net/shenyou_fu/article/details/77827996?utm_source=app
按照以上两个经验贴可以完成部署的大部分过程,但还有一些需要补充,否则完成不了。
一,部署asp.net网站一定要为自己的网站选择初始界面,即你网站的主界面。一定要找对,不然数据库可能连不上。我就是被这个坑了好久。
打开你网站项目的web.config文件(发布后的),在里面添加你的默认界面,当然是你的默认文件在项目中的相对路径。改变下面的value值即可。
<defaultDocument>
<files>
<clear/>
<add value="Normal\Login.aspx"/>
</files>
</defaultDocument>
接下来,刷新运行,会发现提示页面提示“由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射”
下面是解决办法:
1,iis7 :控制面板-》打开或关闭windows功能-》Internet信息服务-》万维网服务-》应用程序开发功能,勾选上“.net扩展性”和“ASP.NET”,保存后,重启IIS服务器即可。
2,iis8:控制面板-》打开或关闭windows功能-》Internet信息服务-》万维网服务-》应用程序开发功能,勾选上“.net Extensibility3.5” 及等带.net的选项,保存后,重启IIS服务器即可。
iis默认安装的时候是没有勾选这些选项的。我们按照操作点击会发现打开的是服务器管理器,我们要点击仪表板-》添加角色和功能,然后按照步骤找即可。
二,进站端口的设定,因为访问你的网站需要设立端口,一定要确定你的该端口是打开的并且符合你的服务器安全组。
三,数据库使用的是SQL Server 2012 localDB,需要在web.config里面配置
<connectionStrings>
<add name="MPInYAYA" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|MPInYAYA.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
name ,自定义
Data Source填写你的数据库实例名,我这使用系统默认的v11
AttachDbFilename为你的数据库文件所在位置 |DataDirectory| 默认指向你项目的App_Data目录
四,一些都配置好了,数据库实例也可以在SSMS上连通,可还是报错实例未连接的错误,这个时候可能是权限的问题。进行以下修改即可。
点击应用程序池-》右侧选取“高级设置”-》进行下面修改,选择LocalSystem
五,出现打不开数据库文件的错误,错误提示数据库文件版本与当前环境不一样。
这个可以按照环境来装,但这个比较烦。我是直接新建一个数据库文件,把数据填充进去之后,再把数据库文件分离出来,放回App-data文件夹里。
六,出现打不开.mdf数据库文件的情况,很可能是因为没有权限,可以右击属性,在安全里新增一个Everyone的用户。
七,有时候出现寻址问题,提示根目录不能使用../,那么将其改为~/