以下以文件型數據庫(如sqlite)為例
樓主話:以下內容,若有不專業處,大膽噴,虛心求教。
起因:要進行一個項目的分布式部署,而這個項目所涉及的其中一個數據庫為sqlite(經測試,同為文件型數據庫的access也可行),眾所周知,sqlite不支持遠程訪問。但我們這個所謂分布式構成一個局域網即可,所以就想到我們常用的ftp這種共享目錄局域網訪問的形式。將sqlitedb放到一個固定機子上。
接下來,開始百度,解決方案:
現有2台服務器:(192.168.0.38)A, (192.168.0.202)B ;
A服務器:數據庫服務器兼IIS服務器,提供共享文件夾DbShare。
A、B服務器做IIS集群,部署報表系統,使用A提供的DbShare文件。
步驟:
一、創建共享文件
首先建立共享文件
1、將我們A服務器上防止數據庫文件的文件夾設置為共享,這里要注意我們設置共享的用戶,下面B服務器建立IIS虛擬目錄的時候添加的用戶要跟此一致,所以我建議可以新建個用戶。
新建用戶直接下拉框中選擇即可。
然后在我們要訪問這個共享文件夾的服務器上(也就是我們的A、B服務器),建立網絡位置(空白處右鍵)
2、(A、B服務器中)IIS創建虛擬目錄,右擊網站,選擇添加虛擬目錄,要共享出來的文件,右擊屬性:共享,加入用戶權限。
然后點擊連接為,選擇特定用戶,這里的用戶即上面我們創建共享文件夾時選擇的用戶
至此,虛擬目錄的創建告一段落。
下面回到sqlite的配置,說是配置,其實就是數據庫鏈接字符串的設置:
<add name="dbConnStr" connectionString="Data Source=\\DESKTOP-F4SH980\dbsqlite\db\sqlite\Blogging_SQLite.db"/>
很簡單,只是路徑變了而已。
注意點:發布時,要把之前那個特定用戶也配置到webconfig中:
<system.web> <identity impersonate="true" userName="zhj" password="123" /> <!--配置好后,發布能運行,iis express 不行,iis express即調試時,得注釋掉--> <customErrors mode="Off"/> </system.web>
至此,搭建完成,AB兩個IIS服務器均可訪問位於同個目錄下的db。
這一節搭建完了局域網分布式
下一節再介紹搭建完后,如何用Nginx反向代理服務器進行客戶端訪問,同時進行一個負載均衡的處理
可能標題起得不應這么小,針對數據庫了,共享目錄應用可以很多,圖片,json文件這些靜態資源均可通過虛擬目錄來實現集群共享。這樣一來,大家可能覺得這文章對我會有點用,也就不會被移除首頁了 汗~~
如我在上文的共享目錄中放置一json文件
AB機子代碼讀取均是以下方式:
1 String jsonfile = “\\\\DESKTOP-F4SH980\\dbsqlite\\xml\\services.json"; 2 String strcontent = File.ReadAllText(jsonfile);
真實路徑是:\\DESKTOP-F4SH980\dbsqlite\xml 前面一定是雙反斜杠,單個默認是C盤
代碼中轉義符的存在,所以直接就是四個反斜杠(好啰嗦,但有時候讀不出來就是這小地方弄錯)
寫博客也是需要經驗積累,慢慢摸索