在IIS上部署ASP.NET MVC项目

之前写了一篇快速部署Asp.net MVC3/4/5项目的文章,链接:https://blog.csdn.net/qq_32025005/article/details/80166374

无需复杂的iis配置,甚是舒爽。但是对于iis的基础知识还是需要有所补充,否则是知其然而不知其所以然。搜索相关文章,转载一篇还不错的理论性文章,加深对Asp.net MVC部署的理解。



需求前言:最近会经常修改一些网站前端的内容,为了方便跟UI和产品交流,需要将自己修改过的页面及时发布到测试机或者是本地的IIS上。而为了熟悉IIS的一些应用,所以先将项目发布在了本地IIS上,这其中遇到了一些问题,现在解决之后,就记录下来,留待后用。

流程图: 
部署项目流程图描述

这里如何启用并配置IIS就不多说了,主要想记录下来的是在试运行过程中所遇到的一些问题。

配置IIS的几个关键点: 
1.URL重写模块,这个以前是ISAPI筛选器的功能,后来好像就改版了,都成模块化设计了。(URL rewrite 下载链接) 
2.ASP.NET MVC项目有路由机制,所以不需要用到IIS中默认文档功能以及目录浏览功能。 
3.记得检查应用程序池的 .NET Framework版本,配置成v4.0版本。 
4.身份验证上一般不用管,IIS默认使用的是“匿名身份验证”。

三大问题 
1.试运行时无法正常访问网站,报错如下: 
错误摘要 
HTTP 错误 403.14 - Forbidden 
Web 服务器被配置为不列出此目录的内容。

主要原因本地项目的web.config 文件出错,缺少一行代码,补上就好,代码如下:

<system.webServer> 
<modules runAllManagedModulesForAllRequests="true" /> 
</system.webServer> 
  • 1
  • 2
  • 3

附上参考链接:点我

2.上面这个问题解决后,再次运行报CS0016未能写入输出文件错误,这里的问题是IIS所对应的组或用户没有访问本地文件夹C:\Windows\TEMP的权限,进入到temp文件夹的属性窗口的安全选项卡,进行修改。 
修改控制权限

3.来自项目本身,这个涵盖面就很广了。我遇到的主要是两个方面的问题: 
3.1 来自JS文件的逻辑判断,用到了 documen.domain属性,可以用该属性获得当前的URL中的服务器名称或是IP地址,以此来进行判断,运行网站的当前用户是否合法。

3.2 来自对网站中各个URL入口的设置。这里有个背景交代:在线下调试时URL中的服务器名称一般都是 “localhost:端口号”,而在线上则会替换成相应的域名,为了修改方便,有以下的设置方式:

web.config 文件中:

<appSettings>
<!--域名-->
    <add key="Domain" value="http://localhost:7676"/>
    <add key="Host" value="localhost"/>
</appSettings>
  • 1
  • 2
  • 3
  • 4
  • 5

某静态类中:

public static partial class WebUIHelper
{
    public static readonly string dominUrl = ConfigurationManager.AppSettings["Domain"];
}
  • 1
  • 2
  • 3
  • 4

某页面中:

@{
    var hostUrl = WebUIHelper.dominUrl;
}
<a href="@(hostUrl)/***/">
  • 1
  • 2
  • 3
  • 4

综上 发布到IIS上时记得 修改web.config文件。

结语 
1.全栈工程师是很厉害的。全栈工程师=基础知识深厚+完善的机器模型+计算机网络+各种前后端语言。 

2.不想了解产品逻辑的程序员当不了一名合格的工程师。


转载自:https://blog.csdn.net/KingArthur_Tao/article/details/77043413

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值