博客园找找看(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. 设置checkbox为只读(readOnly)

    方式一: checkbox没有readOnly属性,如果使用disabled=“disabled”属性的话,会让checkbox变成灰色的,用户很反感这种样式可以这样让它保持只读:设置它的onclic ...

  2. Routing(路由) & Multiple Views(多个视图) step 7

    Routing(路由) & Multiple Views(多个视图) step 7 1.切换分支到step7,并启动项目 git checkout step-7 npm start 2.需求: ...

  3. 云服务器下ASP.NET Core 1.0环境搭建(包含mono与coreclr)

    最近.net core如火如荼,国内这方面环境搭建方面的文档也非常多,但是不少已经是过时的,就算按照那个流程走下去也避免不了一些地方早就不一样了.所以下面我将从头到尾的教大家搭建一次环境,并且成功运行 ...

  4. 迷你 MVC

    深入研究 蒋金楠(Artech)老师的 MiniMvc(迷你 MVC),看看 MVC 内部到底是如何运行的 2014-04-05 13:52 by 自由的生活, 645 阅读, 2 评论, 收藏, 编 ...

  5. 几个 jQuery 小提示和技巧

    几个 jQuery 小提示和技巧 今天,我们将分享一些很有用的技巧和窍门给 jQuery 开发人员.jQuery 是最好的 JavaScript 库之一,用于简化动画,事件处理,支持 Ajax 和 H ...

  6. 关于C#时间格式化中的“f”

    示例: DateTime.Now.ToString("yyyyMMddHHmmssfff") 上面的示例就是将日期格式化到毫秒级.那么问题来了,格式化到微秒级.纳秒级怎么整?f又是 ...

  7. Undefined class constant 'MYSQL_ATTR_USE_BUFFERED_QUERY'

    The error that occurs is:Fatal error: Undefined class constant 'MYSQL_ATTR_USE_BUFFERED_QUERY' in /w ...

  8. 【C#】聊聊不需要记密码的密码管理

    密码管理(Password Management)肯定所有人都不会陌生,密码管理的来源也是来自于实际需求,当人们需要使用到密码的场景越来越多,场景也越来越复杂,密码的记录就成为了“难题”和“负担”,很 ...

  9. C# 获取Get请求返回

    /// <summary> /// 远程获取页面数据 /// </summary> /// <param name="Url">地址</p ...

  10. [C#、winform] FormDesigner.cs报错The variable 'xxxxxx' is either undeclared or was never assigned

    背景: 我写了一个App.config配置文件,在里面定义了模块: <add key="key1" value="std1|std2|std3|std4" ...