实战ASP.NET访问共享文件夹
博客园找找看( http://zzk.cnblogs测试数据 )的索引文件占用空间太大,需要移至另外一台服务器,所以要解决“在ASP.NET中通过共享文件夹访问索引文件”的问题。
假设找找看的ASP.NET程序在A服务器,索引文件在B服务器的ZzkIndex共享文件夹中,访问地址是\\192.168.18.18\ZzkIndex\。要实现就是在A服务器的ASP.NET程序中能读写共享文件夹\\192.168.18.18\ZzkIndex\中的文件。
参考园子里的 asp.net访问网络映射盘的问题 文章,我们解决了这个问题,在这里分享一下。
具体操作步骤:
(注:A服务器为ASP.NET程序所在服务器,B服务器为共享文件夹所在服务器)
将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 >在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页面测试一下,代码如下:
< identity impersonate ="true" userName ="ZzkIndexer" password ="zzk.cnblogs测试数据" />
</ system.web >
<% @ Page Language = " C# " AutoEventWireup = " true " %>访问test.aspx之后,看B服务器的ZzkIndex共享文件中的内容:
< script runat ="server" >
protected void Page_Load(object sender, EventArgs e)
{
System.IO.File.Create(Server.MapPath( " /ZzkIndex/cnblogs.txt " ));
}
</ script >
搞定!
小结
“解决问题+写博客”花费的时间可能是“解决问题+不写博客”的两倍,但写出来之后,你再也不用担心再次遇到这个问题,再也不会出现这样的郁闷:有人问我一个曾经解决过的问题,我却忘了当时是怎么解决的。
作者: Leo_wl
出处: http://HdhCmsTestcnblogs测试数据/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息查看更多关于实战ASP.NET访问共享文件夹的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did49597