IIS访问共享文件详解

本文出自:http://www.cnblogs.com/knowledgesea/p/5145087.html

前言

公司同事做了一个报表系统,需要做集群部署,本来是一件挺容易的事,但是部署过程中却遇到啦种种蛋疼问题。

问题1、我们的报表使用的是微软的水晶报表,需要上传报表的配置文件,然后水晶报表提供的控件来读取文件,不支持直接图片服务器提供的http:www.xxxx.com/a.jpg。但是他支持\\192.168.10.11\ImgShare\a.jpg。

问题2、IIS使用共享文件的时候,出现权限问题致使c#无法访问到服务器共享文件。

那么这篇文章我就针对上面2个问题来展开IIS访问共享文件的实战详细过程。

环境说明

现有3台服务器:(192.168.10.121)A,  (172.18.5.61)B,  (172.18.5.54)C ;

A服务器:图片服务器,提供共享文件夹Ashare。

B,C两台服务器做IIS集群,部署报表系统,使用A提供的Ashare文件。

提醒下,如果B,C的程序是跑的IIS Express,访问A的Ashare没问题,但是使用IIS,就访问不到。不信你试试,下面讲解是让IIS也能访问到的全过程。

创建共享文件

首先建立共享文件,不要嫌弃,创建这里也给整理一下。

1、要共享出来的文件,右击属性:共享,加入用户权限。

2、来到172.18.5.61,B服务器,打开我的电脑,在空白处右击,添加网路位置:

验证A服务器的用户密码,然后就可以啦。

IIS创建虚拟目录

右击B服务器的当前站点,添加虚拟目录---连接为---特定用户:具体配置如下

这里需要注意的是,A文件共享服务器需要创建zlh用户名,B,C应用服务器也要创建同样的用户名zlh。谨记,必须!!

这里也必须是用图片服务器共享出来的用户,制定为特定用户。

c#程序是访问共享文件展示

这里做一个简单的示例程序,判断共享文件夹中的文件是否存在。

  protected void Page_Load(object sender, EventArgs e)
        {
            var path = @"\FileShare\0.jpg";
            //由于FileShare是A服务器的共享文件,这里解析的路径为:\\192.168.10.121\Ashare\0.jpg"
            path = Server.MapPath(path);
            var b= File.Exists(path);
            Response.Write(b);
        }

<body>
    <div>
       <img src="/FileShare/0.jpg" />
    </div>
</body>

  <system.web>
    <!--<identity impersonate="true"/>-->
     <identity impersonate="true" userName="zlh" password="sa,.0" />
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
  </system.web> 

这里需要注意的是:该站点也需要制定特定用户访问,且访问用户为共享目录提供的zlh用户。

结果展示:

至此,IIS访问共享文件的问题已经全部解决完成,你也可以搭建访问下试试。如果有问题,或有更多的解决方案分享,欢迎加入左上角的群,我们一起讨论解决。

时间: 2024-11-03 22:38:01

IIS访问共享文件详解的相关文章

使用花生壳、路由器、个人电脑进行站点部署并实现外网域名访问图文详解(花生壳设置方法 使用方法 使用教程)(转)

原文地址:http://www.cnblogs.com/qqflying/archive/2012/04/02/2430162.html 1.安装花生壳动态域名6.0,安装之后会自动给你一个二级域名,然后你还可以去花生壳网站再申请其他的免费二级域名,见下图: 新花生壳界面如下: 2.检测域名解析工作状态:花生壳在本机安装之后,双击免费二级域名出现如下图则表示花生壳二级域名解析本机外网IP正常: 3.部署站点 在IIS中部署站点,端口设置为默认端口80,然后设置默认文档,完成之后能通过本机内外IP

Express在windows IIS上部署详解

最近公司在用Express+angularjs+wcf开发系统,让我在windows上部署系统,遇到不少问题,不过最后还是解决了,在IIS上部署系统, 首先windows需安装以下软件: 1.nodejs: 2.iisnode: 3.rewrite: 安装这三个软件后,之后部署和部署asp.net程序一样,这里就不多说了: 不过要在根目录下要价格配置文件:web.config; <configuration> <system.webServer> <!-- indicates

Android网络访问方法详解

大多数的Android应用程序都会使用HTTP协议来发送和接收网络数据,而Android中主要提供了两种方式来进行HTTP操作, HttpURLConnection和HttpClient.这两种方式都支持HTTPS协议.以流的形式进行上传和下载.配置超时时间.IPv6.以及连接池等功能. 一 : 首先来看一下Android下提供的网络访问相关API a) java.net.*(标准的Java接口):包括流和数据包(datagram)sockets.Internet 协议和常见 HTTP 处理.H

IIS 之 功能详解

IIS (Internet Information Services)信息服务管理器,本文以Windows10环境下的IIS为例,主要包含:FTP 服务器.Web 管理工具.万维网服务三大部分,如下表所示: IIS 启用默认 一级组成 启用默认 二级组成 启用默认 三级组成 启用默认 说明 Internet Information Services 不启用,需通过“启用或关闭Windows功能”来启用. FTP 服务器 不启用  FTP 服务          FTP 扩展性         W

ThinkPHP中URL访问模式详解

一.ThinkPHP中支持的四种URL访问模式                                                   所谓URL访问模式,指的是以哪种形式的URL地址访问网站. URL访问模式的意义在于:可以让网站中的所有链接有一个统一的格式. URL访问模式 URL模式 URL_MODEL设置 示例 普通模式 0 http://localhost/?m=home&c=user&a=login&var=value PATHINFO模式 1 http:/

nginx配置limit_req限制ip访问速率详解

1.漏桶原理 漏桶原理是什么呢?我们可以从字面上简单的理解,就是有一个桶,它的体积是固定的,桶底下有一个小洞会不停的漏水出去,而桶的上方有个水龙头,也不停的往桶里灌水. 假设我们这个桶的体积是1L,小洞的口能漏水的最大速率为100ml/s,对以下情况进行实验: (1)进水的速率是50ml/s,这时候对于小洞来说完全无压力,那么这个桶里的水就不会溢出,所有的水都会从小洞里漏出来. (2)接着我们把水龙头出水的速率调大到100ml/s,这个时候,和小洞漏水的速率一样,这个时候桶里的水也不会溢出,桶中

虚拟机 iis 配置 图文详解

1.点击开始—>控制面板—>打开或关闭windows功能  如图: 2.现在出现了安装Windows功能的选项菜单,注意选择的项目,我们需要手动选择需要的功能, 下面这张图片把需要安装的服务都已经选择了,大家可以按照图片勾选,如图: 3.下面是配置iis: 安装完成后,点击开始—>管理工具—>双击Internet(IIS)管理器选项,进入IIS设置,如图: 4.选择下图左边的 Default Web Site,并双击右边的 ASP 的选项.选择DefaultWebSite,并双击A

scala 访问权限详解

private/protected [包名/类名/this] 即可指定变量的作用域.(this代表只有当前实例(即对象)可以访问) 伴生类和伴生对象中的成员可以相互访问. class PackageOps_Advanced{import PackageOps_Advanced.power private def canMakeItTrue = power >10001 } object PackageOps_Advanced{ private def power = 10000 def make

tomcat访问日志详解

tomcat日志 tomcat日志配置 在server.xml里的<host>标签下加上 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHost