我们有一个使用 asp.net 2.0 文化的多语言网站。当前文化是通过重写为查询字符串的 url 设置的。(~/es/blah.aspx 是 ~/blah.aspx 的西班牙语版本 - 重写为 ~/blah.aspx?lang=es)
测试文化的代码如下:
System.Globalization.CultureInfo ci;
try
{
ci = new System.Globalization.CultureInfo(Request.QueryString["lang"] ?? string.Empty);
}
catch
{
ci = new System.Globalization.CultureInfo(string.Empty);
}
如果没有设置文化,则默认为英语,127。当有文化时,该页面上的所有链接都会在前面加上正确的文化名称。
不知何故,蜘蛛以 ~/www.test.com/blah.aspx 的形式获取了一些链接,并以 www.test.com 的文化冲击我们的网站,并淹没了我们的错误日志记录。
除了捕获异常之外,还有什么方法可以测试文化名称是否有效?