日期:2014-05-17  浏览次数:20355 次

Asp.net mvc 跨机器访问文件的权限问题
问题1:项目是用asp.net mvc搭的,部署在机器A的iis中,要去访问机器B上的日志文件,比如路径为"\\B\\build\LogFile\log1.txt" ,在vs中测试没有问题,能读到这个目录下的文件,部署到IIS后,就提示无法访问这个目录,没有权限。机器A和B在同一个域中。我把路径中的所有文件夹(build,LogFile)的可访问的用户组中都加上了我登陆机器A所在的用户组,但还是提示这个路径拒绝访问。求高手指点啊!!!

问题2:如果日志文件后缀为txt的如“\\B\\build\LogFile\log1.txt”,那么点击后能在ie里面直接打开浏览文件(把路径放在了<a>标签的href中)。但是如果文件后缀为log的如“\\B\\build\LogFile\log1.log”,点击后ie会弹出下载窗口,不是直接打开文件。怎么让log后缀的文件也直接在ie中打开浏览呢?
asp.net

------解决方案--------------------
把后缀改成.html就可以浏览了..
------解决方案--------------------
问题1:。。。
问题2:在B的IIS里设置下MIME规则,不知道怎么弄直接把log的设置成和txt一样就行了。
------解决方案--------------------
你应该改你那个站点应用程序池的用户权限
------解决方案--------------------
应用程序池 高级设置 标识
默认是ApplicationPoolIdentity,这个用的是IUser用户组,你可以改自定义用户来执行进程
------解决方案--------------------
引用:
Quote: 引用:

问题1:。。。
问题2:在B的IIS里设置下MIME规则,不知道怎么弄直接把log的设置成和txt一样就行了。

B的IIS?要读取的文件在B的磁盘上呢,你的意思是配下A的iis吧?

通过哪个iis访问的就设置哪个
------解决方案--------------------
1.因为在VS中调试时是以当前登陆用户的身份,发布到IIS后是以Network Service用户访问的。
不建议对此用户开放共享,比较好的办法是:
在A机器上另建一个用户(当然要密码),在B机器上对它开放共享
并且在A机器的IIS中的“目录安全性”身份验证设置为新用户
注意,别忘了程序目录也要开放要新用户的读写权限(其他权限不要勾)

2.在A的IIS的Http头设置中为.log设置MIME类型为text/plain
------解决方案--------------------
配置文件里添加个配置试试
<system.web>
   <identity impersonate="true" userName="张三" password="密码" />
</system.web>
------解决方案--------------------
那就试着改成html
------解决方案--------------------
text/html