前言公司同事做了一個報表系統,需要做集群部署,本來是一件挺容易的事,但是部署過程中卻遇到啦種種蛋疼問題。問題1、我們的報表使用的是微軟的水晶報表,需要上傳報表的配置文件,然後水晶報表提供的控制項來讀取文件,不支持直接圖片伺服器提供的http:www.xxxx.com/a.jpg。但是他支持\\192....
前言
公司同事做了一個報表系統,需要做集群部署,本來是一件挺容易的事,但是部署過程中卻遇到啦種種蛋疼問題。
問題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訪問共用文件的問題已經全部解決完成,你也可以搭建訪問下試試。如果有問題,或有更多的解決方案分享,歡迎加入左上角的群,我們一起討論解決。
這裡我提問一個問題,是關於自己搭建文件伺服器,那麼文件的解壓壓縮功能,大家都是怎麼做的?