IIS訪問共享文件詳解

原文: IIS訪問共享文件詳解

前言

公司同事作了一個報表系統,須要作集羣部署,原本是一件挺容易的事,可是部署過程當中卻遇到啦種種蛋疼問題。html

問題一、咱們的報表使用的是微軟的水晶報表,須要上傳報表的配置文件,而後水晶報表提供的控件來讀取文件,不支持直接圖片服務器提供的http:www.xxxx.com/a.jpg。可是他支持\\192.168.10.11\ImgShare\a.jpg。web

問題二、IIS使用共享文件的時候,出現權限問題導致c#沒法訪問到服務器共享文件。c#

那麼這篇文章我就針對上面2個問題來展開IIS訪問共享文件的實戰詳細過程。服務器

環境說明

現有3臺服務器:(192.168.10.121)A,  (172.18.5.61)B,  (172.18.5.54)C ;ide

A服務器:圖片服務器,提供共享文件夾Ashare。spa

B,C兩臺服務器作IIS集羣,部署報表系統,使用A提供的Ashare文件。debug

提醒下,若是B,C的程序是跑的IIS Express,訪問A的Ashare沒問題,可是使用IIS,就訪問不到。不信你試試,下面講解是讓IIS也能訪問到的全過程。code

建立共享文件

首先創建共享文件,不要嫌棄,建立這裏也給整理一下。htm

一、要共享出來的文件,右擊屬性:共享,加入用戶權限。blog

二、來到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訪問共享文件的問題已經所有解決完成,你也能夠搭建訪問下試試。若是有問題,或有更多的解決方案分享,歡迎加入左上角的羣,咱們一塊兒討論解決。

這裏我提問一個問題,是關於本身搭建文件服務器,那麼文件的解壓壓縮功能,你們都是怎麼作的?

相關文章
相關標籤/搜索