惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tor Project blog
K
Kaspersky official blog
S
Security Affairs
Hacker News: Ask HN
Hacker News: Ask HN
L
LINUX DO - 最新话题
S
Securelist
Google DeepMind News
Google DeepMind News
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
N
News and Events Feed by Topic
The Last Watchdog
The Last Watchdog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
小众软件
小众软件
Vercel News
Vercel News
博客园 - 叶小钗
量子位
Help Net Security
Help Net Security
C
Cybersecurity and Infrastructure Security Agency CISA
P
Privacy & Cybersecurity Law Blog
T
The Exploit Database - CXSecurity.com
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
美团技术团队
AI
AI
V
V2EX
T
Troy Hunt's Blog
aimingoo的专栏
aimingoo的专栏
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
D
DataBreaches.Net
H
Help Net Security
V2EX - 技术
V2EX - 技术
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
MongoDB | Blog
MongoDB | Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
N
News and Events Feed by Topic
阮一峰的网络日志
阮一峰的网络日志
T
Threatpost
J
Java Code Geeks
Recent Announcements
Recent Announcements
T
The Blog of Author Tim Ferriss
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Webroot Blog
Webroot Blog
Cyberwarzone
Cyberwarzone
Google DeepMind News
Google DeepMind News
I
InfoQ
P
Proofpoint News Feed
Spread Privacy
Spread Privacy
Security Latest
Security Latest

博客园 - 随风逝去(叶进)

MySQL分表(Partition)学习研究报告 用WPF+MongoDB开发房产信息收集器(4)——房产信息采集器总体介绍附程序下载 用WPF+MongoDB开发房产信息收集器(3)——MongoDB入门 用WPF+MongoDB开发房产信息收集器(2)——后台线程 用WPF+MongoDB开发房产信息收集器(1) 解决FireFox不能Debug Silverlight程序的问题 - 随风逝去(叶进) - 博客园 终于可以继续往下了! 回首2008 【更新 2008.10.16】触发C#Button的双击事件 触发C#Button的双击事件 到底要不要去面试? 【C#食谱】【面食】菜单7:用默认值初始化泛型变量 类和对象 【C#食谱】【杭帮菜】菜单2:写一个TCP客户端 C#Winform下用正则表达式限制TextBox只能输入数字 【C#食谱】【杭帮菜】菜单1:写一个TCP服务端 【C#食谱】【川菜】菜单1:列出被引用的程序集 实现需求工程的成功方法 实现需求工程的成功方法——难度:高;影响:低
另类的二级域名实现方法
随风逝去(叶进) · 2008-12-01 · via 博客园 - 随风逝去(叶进)

文前声明:小生对“二级域名”、“分站”这类概念不是很清楚,本文若是对各位多少有点用,就留个笑脸;若是不才,各位认为完全时垃圾,也敬请拍砖。如果,阁下有更好、更简便的方法,也可以提出来,以供大家(特别是我)学习学习......

这几天,外卖汇网站开始需要实施其他城市的扩展(目前就杭州站有,正在准备上海站的开通),可是遇到一个问题(不说大家也知道了),就是如何通过二级域名指向不同的城市站点。目前外卖汇的域名是waimaihui.com,希望将http://hz.waimaihui.com/指向杭州站,而将http://sh.waimaihui.com/指向上海站。这个自然可以通过配置DNS来简单的实现,但是考虑到后期其他城市的扩展,如果都是通过配置DNS来实现的话,未免可扩展性也太差了。所以,考虑通过程序实现。

考虑到,城市之间的数据基本没有交互的地方,故每个城市都采用一个独立的数据库(当然,这不是一个好的解决方法),这就使得其实不同城市之间只有数据库不同罢了,其他都是一样的,除了网页的标题这类的页面内容,而且这些也只是换个城市名称罢了。

所以,我就想到了一个另类的方法:通过判断用户请求的hostName来判断用户访问的是哪个城市的站点,不同的城市使用不同的数据库连接字符串,这些数据库连接字符串保持为web.config中的key值。 

HostName = HttpContext.Current.Request.Url.Host.ToString();   

UserHost = HostName.Split(new Char[] { '.' }); 

通过判断UserHost[0]的值,来决定用户访问的城市站点。比如说,用户请求的页面时http://hz.waimaihui.com/那么UserHost[0]="hz"

这里也遇到了另一个问题:何时设置这个字符串,用户的访问你是无法确定的,也许用户前一秒访问的时http://hz.waimaihui.com/,可是后一秒也许就是http://sh.waimaihui.com/,如何使得连接字符串做到正确的切换呢?

我选择引入Global.asax,这Application_BeginRequest事件中判断用户请求的页面,然后设置连接字符串为不同的key值,这个事件会在用户每次请求页面时被触发,这样就可以始终保持连接字符串时正确的了。