ASP.NET访问共享文件夹的详细步骤
假设找找看的asp.net程序在a服务器,索引文件在b服务器的zzkindex共享文件夹中,访问地址是\\192.168.18.18\zzkindex\。要实现就是在a服务器的asp.net程序中能读写共享文件夹\\192.168.18.18\zzkindex\中的文件。
具体操作步骤:
(注:a服务器为asp.net程序所在服务器,b服务器为共享文件夹所在服务器)
①在两台服务器上建立相同用户名、相同密码的windows帐户(a与b服务器都要建),比如假设这里用户名是zzkindexer,密码是zzk.cnblogs.com。
②取消两台服务器上的zzkindexer帐户的远程控制(remote control)权限(让这个帐户拥有尽可能少的权限),如下图:
③将b服务器上的zzkindexer帐户移出所有用户组(包含users),如下图:
不属于任何用户组?是的,不要怀疑,已经过实践检验。
④在b服务器上创建共享文件夹zzkindex并给zzkindexer帐户授予写权限,有两个权限需要设置,一个是文件系统权限,一个是共享权限。
文件系统权限设置如下图:
共享权限设置如下:
⑤在a服务器的iis中创建虚拟目录指向b服务器的共享文件夹,如下图:
点击“确定”后,如果出现访问拒绝(access to the path '\\192.168.18.18\zzkindex' is denied.)的错误,不用管它。
⑥在a服务器的asp.net程序的web.config文件中,添加帐户模拟设置:
<system.web> <identity impersonate="true" username="zzkindexer" password="zzk.cnblogs.com"/> </system.web>
⑦在a服务器上,设置“c:\windows\microsoft.net\framework64\v4.0.30319\temporary asp.net files”的文件系统权限,授予zzkindexer帐户修改权限(注:v4.0.30319为当前.net framework版本号)。 否则,运行时会出现错误:the current identity (zzkindexer) does not have write access to 'c:\windows\microsoft.net\framework64\v4.0.30319\temporary asp.net files'.
⑧万事具备,只欠测试!用一个简单的test.aspx页面测试一下,代码如下:
<%@ page language="c#" autoeventwireup="true" %> <script runat="server"> protected void page_load(object sender, eventargs e) { system.io.file.create(server.mappath("/zzkindex/cnblogs.txt")); } </script>
访问test.aspx之后,看b服务器的zzkindex共享文件中的内容:
小结
“解决问题+写博客”花费的时间可能是“解决问题+不写博客”的两倍,但写出来之后,你再也不用担心再次遇到这个问题,再也不会出现这样的郁闷。以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 彻底弄懂 JavaScript 执行机制
下一篇: 您的服务器不支持mysql数据库