微软ASP.NET站点部署指南(6):设置文件夹权限

1.  综述

当你使用Visual Studio的Visual Studio Development Server (Cassini)进行测试的时候,程序是运行在你的系统登陆账户授权之下的,一般情况都是用administrator账户,这样它就有了全部的权限来做任何事情了。但当程序运行在IIS上的时候,他的授权是该站点的应用程序池所设置的账户,默认情况下这种账户只有读取和执行的权限,而没用写权限。

 

程序一般都需要上传或更新文件的功能,这就成了问题,例如,在Contoso University程序里,系统出错的时候Elmah会在Elmah目录下创建XML格式的日志文件。 即便不使用像Elmah这样的工具,你的站点也可能需要让用户上传头像啥的。

 

本章节,我们测试结果是,刚开始之前写不了日志,设置写权限以后,再测试就可以正常写入文件了。

 

提醒:如果根据本章节所做的操作出现错误信息或一些功能不正常的话,请务必check Troubleshooting页面

2.  测试错误日志记录和报表功能

验证程序在IIS是否能正常工作(尽管在VS里是没问题的),你可以模拟的一个错误,然后打开Elmah错误日志,查看是否正确记录错误信息,如果没用正常创建XML日志的话,它将显示空的报告页面。

 

打开浏览器访问http://localhost/ContosoUniversity,输入一个非法的URL地址,这样系统就会产生一个黄页错误(因为Web.config里错误信息配置的是"RemoteOnly"而你是在本机IIS上运行,所以不是显示自定义页面GenericErrorPage.aspx):

 

现在打开Elmah.axd来查看错误报告,使用管理员账户("admin"/ "Pas$w0rd")登录以后,你将看到一个空记录的页面:

 

没用任何错误报告,那是因为Elmah没用在Elmah文件夹成功创建XML日志文件。

3.  设置Elmah目录的写权限

设置文件夹权限,你可以手工设置,也可以通过部署流程里自动化设置。使用自动化设置的话需要十分复杂的MSBuild代码,鉴于这个事情只是在第一次部署的时候做,所以本章节只是展示如果手工来赋权限。(关于自动化设置权限的信息,你可以访问:Setting Folder Permissions on Web Publish。)

 

打开资源管理器,找到你程序部署的目录C:\inetpub\wwwroot\ContosoUniversity,右键Elmah文件夹,选择属性-安装选项卡:

 

(如果在组或用户名Group or user names看不到DefaultAppPool,你可能需要在你的机器上为IIS和ASP.NET4设置一个账户,本章节你要找的账户就是Contoso University程序所用的应用程序池用到的账户,然后添加进来并赋予写权限。关于应用程序池认证的信息,可以查看页面底部的连接。)

点击编辑Edit,在Permissions for Elmah对话框里选择DefaultAppPool,然后在允许列(Allow)选择Write check box。

 

点击确认关闭对话框。

4.  重新测试错误日志记录和报表功能

用同样的方式(访问非法URL地址)模拟一个错误,然后打开错误日志页面,这时候可以发现错误日志已经显示在页面上了。

像SQL Compact 数据库更新一样,也需要App_Data文件夹的写权限,不过,因为部署流程会自动给App_Data设置写权限,所以我们不需要手工去做额外的工作了。

 

现在,你已经完成了在本机IIS上运行Contoso University 程序所需要的必要工作了。下一章节我们将把程序部署到主机提供商的生产环境上,让程序可以公开访问。

5.  更多信息

这个例子里,Elmah不能保存日志的原因很容易发现,可以通过跟踪IIS就能知道。具体信息请查看:Troubleshooting Failed Requests Using Tracing in IIS 7

 

如果给应用程序池身份赋权,请访问:Application Pool IdentitiesSecure Content in IIS Through File System ACLs

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值