临危不乱,.Net+IIS环境经常出现的问题及排障。

标签: net iis 环境 | 发表时间:2011-08-02 08:35 | 作者:活跃的毛虫 Bloger
出处:http://www.cnblogs.com/

你是否经常会遇到以下的拦路虎,当你兴致勃勃地把调试好的程序发布到WEB服务器时,以下错误就出现了:
1、无法找到文件(404)白底黑字
2、没有权限访问该文件(403)白底黑字
3、直接弹出来一个要输入帐号密码的框框,然后你对着屏幕说:什么密码。
4、黄底黑字+红字的错误提示页(.Net)
5...
这些东东几乎占据了.Net+IIS搭建环境的绝大部分错误。
有时我们无意中覆盖一个“不起眼”的文件,上述错误就会蹦出来。碰巧该应用又是非常重要的应用,这足够让你接下来的一个小时冒冷汗。

不过光冒冷汗没用,引用一句话:错误不被你解决,你就有可能被错误解决。我们还是淡定下来解除这些错误吧。我们一项项的来:
1、无法找到文件(404)白底黑字
有以下这些可能性:
第一,你所访问的路径确实没有这个文件,或许你记错了位置,但它的确不存这个文件。解决办法:找到这个文件,去IIS所指向的目录中一层层找这个文件,并确认它存在。
第二,你的IIS没有认出来这个文件,没有该文件的解释器(IIS网站属性——主目录——配置——应用程序扩展)。IIS没有该程序的解释器,然后撒一个谎说没有这个文件。解决方法:打开(IIS网站属性——主目录——配置——应用程序扩展),添加应用程序的相关解释器。

第三,你有某个UrlRewrite在起作用,将你输入的URL给重定向到一个不存在的文件或目录。

。。。


2、没有权限访问该文件(403)白底黑字
有以下这些可能性:
你的NTFS文件夹没有给予WEB用户读取的权限。解决方法:打开计算机管理——本地用户和组——用户——添加用户,在这里添加一个用户,请记住该用户不要属于任何组,如下图所示:

添加新的用户时,密码先用记事本打出来,添加完成后,记事本不要关闭,这个密码在IIS里配置时还需要用到一次.

用户不需要属于任何组,不继承任何权限.

 之后,我们开始给WEB文件夹赋予权限了.顺便提一下,给WEB文件夹配置权限这个步骤很重要,见过很多站点被黑都是因为文件夹权限设置不当,要么过大,要么根本没有一站一用户,有些站点直接给EveryOne用户最大权限,甚至有些站长认为NTFS磁盘格式"根本没用",直接把网站所在的磁盘做成FAT32的,还有很多的虚拟主机商为了图省事,虽然做到了一站一户(软件生成),但是配置的权限过高,因为配置低权限有时候会出现运行故障....后果可想而知.我们遇到问题不要慌,特别是安全的问题.

 

配置文件夹权限的操作方式是:在WEB文件夹上点右键,选择属性——安全;

为了安全,我们要保证网站文件夹的初始权限状态是这样的:

 

为防止逐步提权。网站所在磁盘及磁盘中所有下属文件夹,除了你用于远程登录的最高管理员,其它的统统去掉。

 我们要向该文件夹添加2个用户权限:一个是刚刚添加的用户,用于WEB访问该文件夹,一个是系统内置用户Network Service,用于.net组件在本机运行时访问。

 

给文件夹添加用户的方法之一是单击“添加”——“高级”——“立即查找”,从结果列表中选择目标用户。

添加这些用户进入列表之后,还不算完,点击“高级”,然后选择某个用户,点击“编辑”,给这个用户分配权限,要说的东西限于篇幅,在这里我只给2点参考意见:

(1)WEB文件夹的权限再大也不能大过这个底线:如下图所示:

 

请记住,“完全控制”,“遍历文件夹/运行文件”,“更改权限”,“取得所有权”这四个权限绝不能赋给WEB用户。

(2)请根据需要给子文件夹配置各种不同的权限。例如:给用于上传文件的文件夹写入、删除等一系列权限,但为防止用户通过程序本身的上传机制上传木马,则应该在IIS中配置该文件夹执行权限为“无”:

程序中合法上传文件的文件夹请设置执行权限为“无”

3、直接弹出来一个要输入帐号密码的框框

这个问题其实很简单,第二点中就有介绍,因为我们把WEB文件夹的权限给了自定义的用户,从而导致IIS的默认用户失去了该权限,我们打开IIS,在目标网站上点击右键——属性——目录安全性——身份验证和访问控制栏点“编辑”,出来如下对话框:

IIS有默认的用户名设置,所以我们要重新配置。

点击“浏览”,选择我们在第二步中新建的WEB用户,然后粘帖记事本中存放的密码,点击确定之后还要再粘帖一次,确定就可以了。

现在刷新页面看看,应该可以正常浏览了。

 4、黄底黑字+红字的错误提示页

.net的所有错误如果没有被重定向到自定义页,所有的程序级错误都是诸如黄底+黑字或红字的错误信息,因为太常见,我就不截图浪费资源了,在这里,我只讲一下关于环境的,“Web应用程序当前不可用”,请打开IIS,有两个地方要修改:

1、右键网站属性,选择Asp.Net选项卡,在版本里选择正确的版本。

2、IIS主窗体左侧的“WEB服务扩展”中,选择相应的ASP.net扩展,并点击“允许”。

 

因为时间关系,且这篇文章老被意外打断,并且搜集证据,居然花了四天时间,效率可见相当之低!

以上四点,只是本人干活多年遇到的.Net+IIS环境主要环境问题汇总。希望大家多补充,不当之处恳请批评指正。

您可以转载本文,但请标明出处http://www.cnblogs.com/CoreCaiNiao/archive/2011/08/01/2123991.html

作者: 活跃的毛虫 发表于 2011-08-02 08:35 原文链接

评论: 19 查看评论 发表评论


最新新闻:
· 14岁少年戒网瘾被拧断胳膊(2011-08-02 16:46)
· 上海雨人敛财调查 高价安全系统涉嫌不正当竞争(2011-08-02 16:44)
· 20 个对开发者非常有用的 Google APIs(2011-08-02 16:35)
· 麻省彩票发现有漏洞(2011-08-02 16:23)
· PayPal:游戏虚拟物品付费人数快速增长(2011-08-02 16:13)

编辑推荐:Session,有没有必要使用它?

网站导航:博客园首页  我的园子  新闻  闪存  小组  博问  知识库

相关 [net iis 环境] 推荐:

临危不乱,.Net+IIS环境经常出现的问题及排障。

- Bloger - 博客园-首页原创精华区
你是否经常会遇到以下的拦路虎,当你兴致勃勃地把调试好的程序发布到WEB服务器时,以下错误就出现了:. 1、无法找到文件(404)白底黑字. 2、没有权限访问该文件(403)白底黑字. 3、直接弹出来一个要输入帐号密码的框框,然后你对着屏幕说:什么密码. 4、黄底黑字+红字的错误提示页(.Net). 这些东东几乎占据了.Net+IIS搭建环境的绝大部分错误.

IIS的没落

- ItTalks - www.chenlublog.com
Apache一直作为互联网上使用最广泛的服务器从web早期延续至今,居于第二位的应该属微软的IIS了. 但是,各种迹象表明,IIS现在正在走下坡路了,其市场份额是在不断的下跌. 究竟背后是什么因素在促使这种情况发生呢. 当然,情况不是一直都这么糟糕,在曾经的一段时间里,IIS曾经和Apache不相上下.

[图]IIS的没落

- rokey - cnBeta.COM
Apache一直作为互联网上使用最广泛的服务器从web早期延续至今,居于第二位的应该属微软的IIS了. 但是,各种迹象表明,IIS现在正在走下坡路了,其市场份额是在不断的下跌. 究竟背后是什么因素在促使这种情况发生呢.

Windows IIS日志文件分析程序

- bababubuliku - 月光博客
  Windows Server具有事件日志记录的功能,其IIS日志文件里记录了包括下列信息:谁访问了您的站点,访问者查看了哪些内容等等. 通过定期检查这些日志文件,网站管理员可以检测到服务器或站点的哪些方面易受攻击或存在其他安全隐患.   不过,目前的日志分析工具并不是很完善,有些功能并不具备,特别是针对某个URL地址进行攻击的分析并不多,下面是一个VB Script程序,保存为VBS程序后可以在服务器上运行,用于分析和检测IIS日志里针对某个URL地址进行攻击的IP地址.

nginx风头正劲 挑战 Apache 和 IIS

- nikelius - cnBeta全文版
说到Web服务器,Apache服务器和互联网信息服务系统(IIS)服务器是两大巨头;但是运行速度更快、更灵活的对手:nginx正在迎头赶上. 过去的日子对Web服务器管理员来说轻松得很. 如果你管理的部门使用Windows,就使用IIS服务器;如果不是,就使用Apache服务器. 而现在,你在Web服务器方面有了更多的选择;主要的替代服务器之一:开源nginx Web服务器正在迅速发展起来.

Debugging .NET Core on Linux with LLDB | RayDBG

- -
The LLDB debugger is conceptually similar to the native Windows debugging tools in that it is a low level and command live driven debugger. Part of the reason the .NET Core team chose the LLDB debugger was for its extensibility points that allowed them to create the SOS plugin which can be used to debug .NET core applications.

替代 Apache 和 IIS 的轻量级网络服务器盘点

- Shearer - 开源中国社区最新新闻
说起当今的网络服务器,我想大家对Apache和IIS不会陌生,一般对于Windows的操作系统来说用的IIS比较多,而对于Linux来说,Apache 会占有比较大的优势. 但是,出色的网络服务器可并不只有Apache和IIS. 事实上,性能卓越,堪比Apache和IIS的其他网络服务器还有很多. 这 篇文章给大家介绍五款可以替代Apache和IIS的轻量级网络服务器.

微软IIS 6.0和7.5的多个漏洞及利用方法

- - Chinadu's Blog
1.任何组织和个人不得利用此漏洞进行非法行为,否者产生的一切后果与本人无关. 2.各大站长与个人转载、复制、传阅时请保留此声明,否者引发的一切纠纷由传播者承担. 微软的IIS 6.0安装PHP绕过认证漏洞. 微软IIS与PHP 6.0(这是对PHP5中的Windows Server 2003 SP1的测试).

Microsoft .NET Gadgeteer 简介及其它

- 王雪松 - 博客园-首页原创精华区
     Microsoft .NET Gadgeteer 为开发小型电子模块或嵌入式设备的用户,提供一个快速构建原型机的平台. 它结合了面向对象编程的优点,提供一系列电子模块,可以快速地用这些模块进行计算机辅助设计.      通过.NET Gadgeteer模块可以很容易的构建简单或复杂的设备.

Windows 8将Silverlight和.Net打入冷宫?

- Will - ITeye资讯频道
微软近期在D9和Computex 2011大会上演示了Windows 8,普通用户对于Windows 8的全新界面和触摸功能相比是欣喜不已,但是有那么一群人,却倍感沮丧和担忧. 他们就是Silverlight和.Net开发人员,Windows 8会采用什么样的开发平台呢. 是不是会将Silverlight和.Net打入冷宫.