博客园找找看(http://zzk.cnblogs.com)的索引文件占用空间太大,需要移至另外一台服务器,所以要解决“在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服务器为共享文件夹所在服务器)

  1. 在两台服务器上建立相同用户名、相同密码的Windows帐户(A与B服务器都要建),比如假设这里用户名是ZzkIndexer,密码是zzk.cnblogs.com。
  2. 取消两台服务器上的ZzkIndexer帐户的远程控制(Remote Control)权限(让这个帐户拥有尽可能少的权限),如下图:

  3. 将B服务器上的ZzkIndexer帐户移出所有用户组(包含Users),如下图:

    不属于任何用户组?是的,不要怀疑,已经过实践检验。

  4. 在B服务器上创建共享文件夹ZzkIndex并给ZzkIndexer帐户授予写权限,有两个权限需要设置,一个是文件系统权限,一个是共享权限。
    文件系统权限设置如下图:

    共享权限设置如下:

  5. 在A服务器的IIS中创建虚拟目录指向B服务器的共享文件夹,如下图:

    点击“确定”后,如果出现访问拒绝(Access to the path '\\192.168.18.18\ZzkIndex' is denied.)的错误,不用管它。
  6. 在A服务器的ASP.NET程序的web.config文件中,添加帐户模拟设置:
    <system.web>
    <identity impersonate="true" userName="ZzkIndexer" password="zzk.cnblogs.com"/>
    </system.web>
  7. 在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'.
  8. 万事具备,只欠测试!用一个简单的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共享文件中的内容:

    搞定!

小结

“解决问题+写博客”花费的时间可能是“解决问题+不写博客”的两倍,但写出来之后,你再也不用担心再次遇到这个问题,再也不会出现这样的郁闷:有人问我一个曾经解决过的问题,我却忘了当时是怎么解决的。

来源: http://www.cnblogs.com/dudu/archive/2012/03/27/asp_net_share_folder.html

实战ASP.NET访问共享文件夹(含详细操作步骤)的更多相关文章

  1. IIS/ASP.NET访问共享文件夹的可用方式

    [截止2014-10-14] 网上搜索了很多篇文章,所提及的总共有两种方式: 1.Asp.Net模拟登陆: 例如: 实战ASP.NET访问共享文件夹(含详细操作步骤) 实现一个2008serve的II ...

  2. ASP.NET 访问共享文件夹

    配置代码: var dataProtection = new Microsoft.AspNet.DataProtection.DataProtectionProvider(new DirectoryI ...

  3. (转)WIN7更改用户名访问共享文件夹

    原文地址: http://ryy8013.blog.163.com/blog/static/71729589201210610533778/ 一直以来,windows7客户端访问windows ser ...

  4. PC问题-可以PING通IP,PING名字不通,可以远程,但不能访问共享文件夹?

    问题现象:可以PING通IP,PING名字不通,可以远程,但不能访问共享文件夹? 问题原因:目标主机中NetLogon服务未启动. 问题处理:远程打开目标主机,“我的电脑-管理-服务-启动(改为自动) ...

  5. VirtualBox中的Ubuntu没有权限访问共享文件夹/media/sf_bak

    之前已经搞定可以自动共享文件夹了,但是现在发现无法去访问,非root用户下,使用“ls /media/sf_bak”提示没有权限,当然如果切换到root,是可以的. [解决过程]1.把普通用户名加入到 ...

  6. 清除在Windows下访问共享文件夹时的登录信息

    清除在Windows下访问共享文件夹时的登录信息 在实际工作中,经常需要访问局域网内其他机子上的共享文件夹,例如\\192.168.1.100\d$ , 首次访问时,需要输入用户名和密码才可以进入,即 ...

  7. [转]Win10企业版无法访问共享文件夹

    Win10系统电脑在更新后,当我们访问共享文件夹时可能会出现如下图所示窗口,导致我们无法访问.那么这个问题如何解决呢?具体如下:1. 首先我们按“Windows+R键”打开运行窗口.2. 在该窗口文本 ...

  8. yii2 rbac权限控制详细操作步骤

    作者:白狼 出处:http://www.manks.top/article/yii2_rbac_description本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 ...

  9. yii2权限控制rbac之详细操作步骤

    本篇的主题是 rbac权限控制的详细操作步骤,注意是操作步骤哦,关于配置与rbac的搭建,我们在博文 yii2搭建完美后台并实现rbac权限控制实例教程说的再清楚不过了. 但是,在很多人的反馈下,说是 ...

随机推荐

  1. 数据分析R语言1

    数据分析R语言 无意中发现网上的一个数据分析R应用教程,看了几集感觉还不错,本文做一个学习笔记(知识点来源:视频内容+R实战+自己的理解),视频详细的信息请参考http://www.itao521.c ...

  2. Enumerable和yield

    说说IEnumerable和yield IEnumerable数据类型是我比较喜欢的数据类型,特别是其强类型IEnumerable<T>更获得Linq的支持使得代码看起来更加优雅.整洁. ...

  3. [转]iOS Tutorial – Dumping the Application Memory Part 2

    Source:https://blog.netspi.com/ios-tutorial-dumping-the-application-memory-part-2/ In my previous bl ...

  4. 代码重构方向原则指导(转载 cnblogs)

    英文原文:Hill Climbing (Wonkish)   重构是一种对软件进行修改的行为,但它并不改变软件的功能特征,而是通过让软件程序更清晰,更简洁和更条理来改进软件的质量.代码重构之于软件,相 ...

  5. Please Send Me a Card

    Please Send Me a Card 发现身边很多程序员都能看懂英文技术文章的60%-80%内容,但大家都有一个毛病,就是不会说,不会写作,在逛英文技术社区的时候,想发表点什么评论,总担心自己写 ...

  6. HashTable和HashSet中的类型陷阱

    HashTable和HashSet中的类型陷阱 发现这个陷阱的起因是这样的:我现在有上百万字符串,我准备用TopK算法统计出出现次数做多的前100个字符串. 首先我用Hashtable统计出了每个字符 ...

  7. Jekyll报'Tag was never closed'错误

    使用jekyll的代码高亮功能.但是发现有时总是很恼人的出现错误,报告说'Tag was never closed'.可是我很确定的关闭了标签啊,真是令人恼怒啊.解决方案式什么哪?如果你对此有兴趣,请 ...

  8. 业务接口+UI层的设计(基于Castle实现的Repository)

    业务接口+UI层的设计(基于Castle实现的Repository) Repository层设计的文章见:[http://www.cnblogs.com/yomho/p/3297042.html]   ...

  9. cocos2d-x 3.0 cocos run Couldn't find the gcc toolchain.

    出现这个错误是NDK_ROOT环境变量没有设置好,要么设置错了,要么没有重启终端(也就是环境变量还没有生效).我就是因为没有重启终端坑了一个晚上,我只能帮你到这了,玩cocos2d-x 3.0的朋友, ...

  10. j2ee面试宝典翻译(1)

    q1:给出一些使用Java的理由? a1:java是一个有趣的编程语言,让我找出一些理由来: 内建的多线程机制.套接字.内存管理(自动垃圾回收) 面向对象 跨平台 通过对标准API的扩展来支持基于we ...