亲而有间,密而有疏;和而不同,美美与共

通过IIS共享文件夹来实现静态资源"本地分布式"部署

  以下以文件型数据库(如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盘

代码中转义符的存在,所以直接就是四个反斜杠(好啰嗦,但有时候读不出来就是这小地方弄错)

 

写博客也是需要经验积累,慢慢摸索

 

 

 

posted @ 2016-07-19 20:47  大兄弟竹子  阅读(5003)  评论(2编辑  收藏  举报