如何在程序部署时授予某文件夹对文件的写访问权?

yourbj 2003-09-15 12:10:33
能在部署(用的是VS.NET自带的部署程序)时给TEMP文件夹设置权限么?
比如给EveryOne设置完全控制的权限或是添加“{machinename}\ASPNET”的写权限?
能给多个文件夹设置权限么?
错误信息如下:
“/Crux”应用程序中的服务器错误。
--------------------------------------------------------------------------------

对路径“C:\Inetpub\wwwroot\TEMP\30351965-2421-460b-9544-5b6b1a593c51.html”的访问被拒绝。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.UnauthorizedAccessException: 对路径“C:\Inetpub\wwwroot\TEMP\30351965-2421-460b-9544-5b6b1a593c51.html”的访问被拒绝。

未授权此 ASP.NET 进程访问所请求的资源。出于安全原因,默认的 ASP.NET 进程标识为“{machinename}\ASPNET”,它只具有有限的特权。请考虑授予该 ASP.NET 进程标识访问此资源的权限。

若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”以添加“{machinename}\ASPNET”用户。突出显示此 ASP.NET 帐户,在“允许”列中选中“写”框。
...全文
74 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
yourbj 2003-09-16
  • 打赏
  • 举报
回复
麻烦版主帮着结贴
维她奶 2003-09-16
  • 打赏
  • 举报
回复
gz & up
xhzuo 2003-09-16
  • 打赏
  • 举报
回复
aspnet用户加到管理员组中太危险了
我都是手工添加aspnet用户,不知道有没有其他好的办法?
yourbj 2003-09-16
  • 打赏
  • 举报
回复
to panyee(快乐王子):
这句写在哪里啊?

to alphawin(云和山的彼端):
对呀,我就是想解决这个问题啊!

to _weiKun_(Virus):
多谢UP!
carper 2003-09-16
  • 打赏
  • 举报
回复
你的email 我单独给你mail 一分。

单独的它,只有 2.4 m

yourbj 2003-09-16
  • 打赏
  • 举报
回复
多谢carper(卡皮)
我也找到了,不过好象70-80M呢,微软的速度又不敢恭维
carper 2003-09-16
  • 打赏
  • 举报
回复
http://www.microsoft.com/downloads/details.aspx?FamilyID=7f297cf6-02d7-49e2-84e9-f6f5b444627b&displaylang=en

这里面有 ORCA

The trial version also includes an orca, a show animal that can perform a series of tricks!
carper 2003-09-16
  • 打赏
  • 举报
回复
ORCA 在 微软的 sdk 中可以找到。

它是一个专门修改msi 文件的工具。

ys19811110 2003-09-16
  • 打赏
  • 举报
回复
呵呵,结帐就要给分,可是问题还没解决呢
yourbj 2003-09-16
  • 打赏
  • 举报
回复
TO timmy3310(Tim) :
可是问题并没有解决啊?

TO carper(卡皮) :
小弟无知,ORCA是什么?能提供个下载的网址么?
除了ORCA就没其他办法了么?
如果用ORCA,那我每次升级重新打包的时候都要手动改一遍MSI?
carper 2003-09-16
  • 打赏
  • 举报
回复
使用ORCA 修改生成后的msi 文件就可以了。

具体如下:




具体做法:



1. 用ORCA打开这个msi.

2. 在Directory Table里找到那个你要给权限的Directory(例如TARGETDIR或其他子目录)。 记下”Directory”一栏的值。

3. 在Component Table里找到那个对应与你的Web Application的Component。记下Component一栏的值。

4. 在CreateFolder Table里,加一条纪录:



Directory: (记下的Directory Table里的”Directory”一栏的值)

Component: (记下的Component Table里的”Component”一栏的值)



5. 在LockPermissions Table里,加两条纪录:

a. 给Everyone Read和Execute的权限
 
       LockObject: (记下的Directory Table里的”Directory”一栏的值)

Table: CreateTable
Domain: (Leave Blank)
User:       Everyone
Permission: 538050697 (Read+Execute)



b. 给Current Logon User Full Control 权限(如果不加这一条,则没法卸载)

LockObject: (记下的Directory Table里的”Directory”一栏的值)
Table: CreateTable
Domain: (Leave Blank)
User:       [LogonUser]
Permission: 268435456 (Full Control)

timmy3310 2003-09-16
  • 打赏
  • 举报
回复
你自己就可以结啊

点右上角的“管理”
wkyjob 2003-09-15
  • 打赏
  • 举报
回复
无言
_weiKun_ 2003-09-15
  • 打赏
  • 举报
回复
设置目录权限,在以前非。NET编程中是用VXD写,但在>NET 中还不知道。帮你UP
alphawin 2003-09-15
  • 打赏
  • 举报
回复
装.net的时候要注意aspnet用户的权限
panyee 2003-09-15
  • 打赏
  • 举报
回复
把aspnet用户加到管理员组里


<processModel impersonate="true" userName="system" password="AutoGenerate" />
isonme 2003-09-15
  • 打赏
  • 举报
回复
gz

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧