做了多年的Web开发工作,网站部署也不在话下,可每次部署却并不是十分顺利,将本次在阿里云服务器上部署asp.net mvc网站遇到的问题记录如下。

平台是阿里云ECS,操作系统是 Windows Server 2012 r2,全新的环境,完全从头开始。

一. windows server 启用IIS功能

windows环境下web服务器部署,首先要启动IIS功能,这个大家也都知道:

服务器管理区-》添加角色和功能-》选择“Web Server(iis)”,接下来选择IIS具体的功能项,安全性,常见http功能,控制台功能,该选的都选上,最重要的一点,因为我们要部署的是asp.net mvc 网站,所以,应用程序开发下面的 ASP.NET 一定要记得选上。

至此,我们的所有操作都是正确的,但是安装时却报错了。

错误信息为:服务器管理器WinRM插件可能已损坏或丢失

原本正确的操作,却爆出了这样的错误,真是让人无语。

阿里云给出了此问题的解决方法:https://help.aliyun.com/knowledge_detail/40957.html?spm=5176.7842540.2.4.SaEVdR

分三个步骤:

1、在“服务”中查看下WinRM服务是否开启,如果没有运行服务,将服务开启运行。

2、打开命令提示符,输入netsh http add iplisten 127.0.0.1,还有netsh http show iplist,如图。(这步是个坑,以后会遇到)

  (可尝试步骤:设置虚拟内存。服务器默认没有设置虚拟内存,有人建议设置一定量的虚拟内存解决上面的问题。)

3、再次测试安装iis服务,安装成功。

经过上面的操作,IIS基本上安装成功了(如果还是那个错误,建议重启),然后重启电脑。

二.部署asp.net mvc 网站

网站具体部署过程不再赘述,实在不懂的,自行百度,现在说一下部署完成后可能遇到的几个问题。

1.HTTP 错误 500.19 - Internal Server Error

无法访问请求的页面,因为该页的相关配置数据无效。

详细信息:不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的 (overrideModeDefault="Deny") ,或者是通过包含 overrideMode="Deny" 或旧有的 allowOverride="false" 的位置标记明确设置的。

问题解析:从错误描述可以看出,问题出在配置文件上,但又不能从web.config文件中删除此配置项

解决方案:

出现这个错误是因为从 IIS 7 开始 采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改。

要取消锁定可以运行命令行:%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers

其中的 handlers 是错误信息中红字显示的节点名称。

如果 modules 也被锁定,则运行命令行:%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules

2.IIS无权限访问目录

在IIS访问静态文件,虚拟目录时可能会出现无权限的错误,此时,应当修改文件夹属性-安全,添加IIS_User(具体角色依IIS运行角色而定)的读取,运行权限。

3.如果程序开发使用的.net framework 高于服务器.net framework 版本(4.5),需要按装更高版本.net framework.

三.外网无法访问

网站部署完毕,在本机正常访问,但是其他电脑无法访问(包括内网或外网)。

还记得我们在解决IIS安装问题时,运行的那个命令行吗?

netsh http add iplisten 127.0.0.1

仔细看一下这行命令的含义,原来是让服务器只侦听 本机(127.0.0.1)的web请求,难怪其他电脑不能访问。

解决方案:运行命令行 netsh http delete iplisten 127.0.0.1 解除对IP请求的限制

至此,asp.net mvc 网站部署基本完成。需要注意的是,在某一个解决方法试用之后,如果问题没有得到任何解决,可尝试重启服务器。

备注:如果网站绑定的非80端口,则防火墙会拦截该网站请求,可以在防火墙入站规则中,添加对应端口的请求。

阿里云 Windows Server 2012 r2 部署asp.net mvc网站 平坑之旅的更多相关文章

  1. 阿里云windows server 2012 TIME_WAIT CLOSE_WAIT

    新申请的阿里云windows server 2012 R2上部署安装了socket服务器,但客户端连接后老是断开(心跳包没有),服务假死(服务不断也走),客户端申请连接会也会死在cmd下输入指令 ne ...

  2. Windows Server 2012 R2部署--安装桌面体验

    Windows Server 2012 R2部署(3)---安装桌面体验 1) 打开服务器管理器 2) 选择所有服务器    3)添加角色和功能    4)下一步    5)下一步    6)下一步 ...

  3. windows server 2012 R2 部署AD域服务

    一.部署AD域控制器 首先,我们检查第一台已经安装Windows Server 2012 R2的服务网络的相关配置,确定的服务器IP地址.子网掩码.默认网关的参数如下,由于该服务器既要充当ADDC角色 ...

  4. Windows server 2012 R2 部署WSUS补丁服务

    一.WSUS 安装要求 1.硬件要求: 对于多达 13000 个客户端的服务器,建议使用以下硬件:* 4 Core E5-2609 2.1GHz 的处理器* 8 GB 的 RAM 2.软件要求: 要使 ...

  5. Windows Server 2012 R2 部署DC及主辅DC

    背景信息: 资源组:hlmdcn DC1:windows Server 2012 R2 Datacenter, A2, hlmdc1, 10.8.0.4DC2:windows Server 2012 ...

  6. 如何在windows server 2012 R2 部署WEB项目

    tip: 今天发布项目到windows server 2012 R2上面. 没有接触过,其实很简单,看图: 这是安装IIS成功后显示的总图: 二.点击Manage ,选择Add Roles and F ...

  7. skiasharp在阿里云Windows server 2016上部署时提示The type initializer for 'SkiaSharp.SKAbstractManagedStream' threw an exception. 错误

    应用环境及问题描述: Windows Server 2016,.Net core 2.1, Skiasharp作为跨平台的图像处理组件在生成缩略图时出错,本地测试都是正常的,部署到服务器无法生成缩略图 ...

  8. Windows Server 2012 R2 部署 Exchange 2013

    我的环境在DC上 ,一般建议Exchange 增加DC 通过管理员权限执行PowerShell 来安装一些IIS组件, 安装命令例如以下: Install-WindowsFeature AS-HTTP ...

  9. 阿里云 Windows Server 2012 密码过期设置

    不加入域的情况下: 1.服务器管理器>工具>本地安全策略>账户策略>密码策略>密码最长使用期限(修改为0天)或者禁用密码复杂度要求 参考:https://blog.csd ...

随机推荐

  1. 整理一些.net core中的错误代码

    在hosting .net core时,有些错误代码并不容易理解. 作为标记,方便查询,这些错误代码可能不会出现在VS的错误查找工具里,也不会出现在错误代码转字符描述的函数里. COR_E_AMBIG ...

  2. HDU 1162 Eddy's picture (最小生成树)(java版)

    Eddy's picture 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1162 ——每天在线,欢迎留言谈论. 题目大意: 给你N个点,求把这N个点 ...

  3. tkinter之grid布局管理器详解

    在很久之前,我发过一篇<tkinter模块常用参数>,里面已经几乎涵盖了tkinter的大部分教程. 好吧,其实也就是上一篇而已啦. 所谓布局,就是指控制窗体容器中各个控件(组件)的位置关 ...

  4. JSON语法与JavaScript语法的区别

    JSON是独立于语言存在的,在不同的编程语言中对这种数据类型的实现不同,例如在JavaScript中使用JavaScript对象对这种数据格式进行实现,那么在java中当然是用java对象实现. 描述 ...

  5. MongoDB添加仲裁节点报错replica set IDs do not match办法

    背景:由于历史原因,某个MongoDB副本集只有一主一从双节点,无法满足自动故障转移要求,需要配置一个仲裁节点. 原有节点192.168.10.20:27017,192.168.10.21:27017 ...

  6. visual Studio 中使用正则表达式来进行查找替换

    1.打开visual Studio 2. 通过菜单Edit -->Find and Replace -->Replace In File  ,或者使用  ctrl + Shift + H  ...

  7. spring拦截器(interceptor)简介

    1. 拦截器用途 (1)拦截未登录用户直接访问某些链接 (2)拦截日志信息 (3)拦截非法攻击,比如sql注入 2. 涉及jar.类 (1)spring-webmvc.jar (2)HandlerIn ...

  8. win10优化开机进程

    一种比杀毒软件都优化还给力的方法,还在为开机几百个程序启动发愁嘛.一般电脑在重装系统之后的开机进程在50左右,而随着安装程序的增多开机进程将越来越多.下面介绍怎么优化win10进程的方法 之后重启电脑 ...

  9. C# -- 使用递归列出文件夹目录及目录下的文件

    使用递归列出文件夹目录及目录的下文件 1.使用递归列出文件夹目录及目录下文件,并将文件目录结构在TreeView控件中显示出来. 新建一个WinForm应用程序,放置一个TreeView控件: 代码实 ...

  10. Lingo求解线性规划案例2——多阶段投资问题

     凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 某公司现有资金30万元可用于投资,5年内有下列方案可供采纳:   1号方案:在年初投资1元,2年后可收回1. ...