帮助中心 >
IIS常见问题的排查

权限问题

目录权限设置
(服务器环境)
服务器环境下权限设置以Windows Server 2003为例,虚拟主机用户不必进行此项设置。
首先,我们需要用到以下的组:
IIS_WPG 组(也称为 IIS 工作进程组,IIS Worker Process Group
Guests (来宾组,在系统中拥有最少的权限)
以及以下的帐号:
Internet 来宾帐户 (匿名访问 Internet 信息服务的内置帐户)
启动 IIS 进程帐户 (用于启动进程外应用程序的 Internet 信息服务的内置帐户)
首先我们新建两个帐号,打开控制面版中的管理工具然后找到计算机管理。
双击用户后展开用户的列表,在用户列表内点鼠标右键选择新用户。如下图:


点击新用户后出现下图:
在用户名等位置输入您要使用的用户名,全名以及描述是做说明用的可以不填写。这里建议您的用户名用"_iusr"和"_iwam"来做后缀以区别开IIS来宾帐号,和IIS的进程启动帐号。一般来说iusr为IIS来宾,iwam为IIS进程启动帐号。当然您也可以按照您的习惯来做后缀区分两个帐号已方便以后使用。
帐号的密码我建议您使用一个12位以上的数字字母和符号混合密码,或者是一个MD5两次后的密码。这样可以有效的防止密码被人暴力破解。


帐号建立完成我们来更改一下帐号的所属组,首先更改siteserver_iusr的组为Guests.如下图所示。


接着更改siteserver_iwam的组为IIS_WPG.如下图所示。


这样我们就有了访问网站时用户连接服务器的帐号siteserver_iusr,和服务器用来启动程序池运行.net程序的帐号siteserver_iwam。
下面更改IIS的配置:
在控制面板→管理工具→Internet 信息服务(IIS)管理器,打您的站点属性找到目录安全性选项卡,点身份验证和访问控制的编辑出现下图。
用户名中输入我们刚刚新添加的来宾组的帐号siteserver_iusr。


然后在应用程序池中新建一个应用程序池,命名为网站的目录名称或者siteserver。


然后在新建立的应用程序池上鼠标右键点属性,找到标识选项卡。选择配置后在帐号中输入刚刚设置的IIS进程启动帐号siteserver_iwam。


之后设置IIS站点属性,IIS站点要使用此程序池来运行。


做这些设置后我们还要更改windows下的temp文件夹的权限。给temp文件夹加上一个iis_wpg的帐号,并给于图示权限。


请在执行应用操作前,选择替换子目录。如下图所示


然后我们要给网站的目录添加siteserver_iusr和siteserver_iwam这两个帐号。
设置 siteserver_iusr 的权限为读取,设置 siteserver_iwam 的权限为除全部控制外的全部权限。

图片预览
到这里我们的目录权限就设置完成了,再结合一些其它的服务器安全设置您便可以防御一部分已知的服务器入侵和攻击。
下面我们便可以开始进行 SiteServer CMS 的安装了。
 
 
目录权限设置(非服务器环境)
以Windows XP为例,首先需要找到系统的根目录。
系统根目录指IIS虚拟目录或网站指向 SiteServer CMS 系统的目录,以下示例为D:\test目录
首先在系统根目录中点击菜单:工具/文件夹选项,点击查看,将“使用简单文件共享(推荐)”的勾选去除,点击确定。


然后在目录上点击右键,选择属性,显示属性窗口,在安全选项卡上新增aspnetnetwork service用户,并将完全控制权限赋予这两个用户:

 
到这里我们的目录权限就设置完成了。


ASP.Net网站发布到IIS6.0时遇到的登录认证问题

 

遇到的问题是:每次在打开网页的时候,会自动弹出登录框,输入服务器Windows用户的账号密码后可以正常浏览网站。点取消则不能打开页面,页面的标题栏显示“未授权”,如下图:

这个登录框是我不希望出现的,因为网站有自己的登录页面“Login.aspx”。应该如何解决这个问题?谢谢

我的Web.config配置相关部分设置如下:

    <!--
            通过 <authentication> 节可以配置 ASP.NET 用来 
            识别进入用户的
            安全身份验证模式。 
        -->
    <authorization>
      <deny users="?"/>
      <allow users="*"/>
    </authorization>
    <authentication mode="Forms">
      <forms name=".ASPXAUTH" loginUrl="Login.aspx" protection="All" timeout="60"  />
    </authentication>

网站服务器上IIS的相关部分配置如下图:


去掉web.config里面的 <deny users="?"/>就可以啦。


 

在Windows 2003下面调试ASP程序的常见错误以及解决方案



 

错误之一:不能在浏览器端显示调试信息,只显示HTTP 500错误。

  不出意外的话,只要你开发过Asp程序,绝对会出现这样的错误。出现这样的错误也不要紧,毕竟可以根据浏览器上面显示的错误原因进行解决。但是在Windows 2003 Server + IIS 6.0 下面就只报告“内部服务器错误”,没有具体的信息,让人郁闷的不行。一般来说可以通过如下的配置让IIS启动调试ASP程序(标红的选项打勾),具体见见图1,图2。要出现此配置项,在IIS中你发布的网站(一般为默认网站)上单击右键,选择属性,在弹出的选项中,点主目录,点配置按钮就可以出现如图1,图2的选项。

图1 启用父路径

图2  启用ASP程序调试

  但是很奇怪的是做了这些修改之后,浏览器还是不能正常显示错误信息。一直以为这个是IIS服务器的问题,最后通过多方查找资料,终于发现是Internet Explore的问题。通过作如下的配置就可以正常显示了(按标红的选项修改,默认的勾和下面的图片显示刚好相反)。具体点击Internet Explorer—工具—Internet选项就可出现如下选项页:

图3 Internet 选项配置

  做了以上的修改之后,一般来说就可以正常显示错误信息了,调试错误时也方便了很多。