问题描述
请教各位大神。现在有一个项目是多处开发,架设了多个数据库服务器。现在的问题在这儿:不同的地点,只能访问其中一处数据库服务器。我想在Web.config中把这多个数据库服务器地址都配置了。在网站运行时,自动测试当前可以链接到哪个服务器,则以后的数据查询都使用这个数据库服务器。问题有两点:1.如何在用户打开网站时,第一步就先测试数据库服务器。2.如何使用异步的方式进行同时测试。因为同步测试有可能第一个就访问不到,要耗费较多时间才能返回。因为可能存在内外网,所以单纯根据IP地址来做不太可能。谢谢!
解决方案
解决方案二:
你可以设计一个格式,将”服务器IP/域名“与”数据连接串名“匹配,记录到一个文本文件中。当然记录到webconfig文件也行,就是格式编辑起来麻烦一点。
解决方案三:
这个IP判断跟什么”内外网“没有任何关系。你取的是访问服务器时本地(服务器)信息。
解决方案四:
在主数据库的用户表里加个字段,用来设置这个用户是用那个连接数据库的就可以了。登录时会根据这个字段找到相应的连接
解决方案五:
在Global.asax的Application_Start事件中启动一个Task来测试哪个数据库可用。然后将数据库的配置纪录到文件里面。以后每次都读取这个文件就行了。
解决方案六:
引用3楼rpwlp888的回复:
在主数据库的用户表里加个字段,用来设置这个用户是用那个连接数据库的就可以了。登录时会根据这个字段找到相应的连接
lz的意思是不要求手动设置什么东西。
解决方案七:
引用5楼sp1234的回复:
lz的意思是不要求手动设置什么东西。
感谢大版回复!你说的配置实际上已经在web.config中配置了,主要的问题还在于异步测试访问的机制。目前我的做法是在用户登录界面使用ajax异步同时测试所有的数据库连接,哪个通过就设置哪个为以后的连接字符串。当然如果用户不打开登录界面,就不行了。不过我们的网站是用户必须登录的。
解决方案八:
引用4楼lifeilin6671的回复:
在Global.asax的Application_Start事件中启动一个Task来测试哪个数据库可用。然后将数据库的配置纪录到文件里面。以后每次都读取这个文件就行了。
最开始我也是这样考虑的,不过实际做的时候,发现异步函数并没有异步执行,还是会卡死,等到异常捕获后,才进行下一个数据库连接的测试。