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