日期:2014-05-17  浏览次数:20561 次

如何配置web.config连接多个数据库
有一个项目,数据库连接是配置在web.config中,项目已布署在互联网上,
访问的时候,可以用几个域名去访问,如 aa.com,bb.com都能访问,现在希望用aa.com和bb.com访问看到的内容不一样
不知是否可以配置web.config,使两个域名访问时连接的数据库不是同一个
求高人解答
当然,有更好的解决办法也行
前提是不希望较大地改动程序,不改动数据库结构


------解决方案--------------------
你可以根据不同的域名,在web.config设置一个链接字符串
在程序里面,获取当前的域名,根据域名去获取web.config里面相应的连接字符串
------解决方案--------------------
取出当前客户端请求的URL中是aa.com还是bb.com,然后读取不同的数据库连接

其实可以参考一下经典的PetShop
------解决方案--------------------
探讨
引用:
你可以根据不同的域名,在web.config设置一个链接字符串
在程序里面,获取当前的域名,根据域名去获取web.config里面相应的连接字符串

这个方法是可行的,我希望能把域名判断这一步放到web.config里完成,不知道可以不

------解决方案--------------------
我明白lz的意思了。

很简单的做法,从用户提交的http请求中提取host字段,这样就可以知道是aaa.com还是bbb.com,然后在web.config里面定义一个字典,映射,比如aaa.com对应db1,bbb.com对应db2。

程序装入的时候判断。

另外要同时把多个域名绑定过来,需要对dns做泛解析,在iis的站点里面配置host(主机头)
------解决方案--------------------
探讨
这一句是数据库连接语句,我希望域名不同的时候,value能不一样
这个判断语句应该怎么加?
<add key="BbsConn" value="Server=localhost;User id=xxxx;pwd=xxx;database=xxx"/>

------解决方案--------------------
探讨
引用:
引用:
你可以根据不同的域名,在web.config设置一个链接字符串
在程序里面,获取当前的域名,根据域名去获取web.config里面相应的连接字符串

这个方法是可行的,我希望能把域名判断这一步放到web.config里完成,不知道可以不XML code<addkey="www.a.com" value=""/><addkey="www.b.com" value=""/>
程序里面直接把key传过去就可以了