IIS 6.0、Windows Server 2003 中的 CDate 函数错误

IIS 6.0、Windows Server 2003 中的 CDate 函数错误

我们在 IIS 6.0 上的 Windows 2003 服务器上运行 .NET 2.0 ASMX Web 服务。我们已使用 VB.NET 将旧版 VB 6.0 应用程序迁移到 .NET 2.0 应用程序。CDATE 函数在许多地方使用,我们并没有用 .NET 等效日期函数替换它。

迁移后,代码运行多年。

最近,我们在生产服务器上遇到问题,以下代码失败:

CDATE("2011 年 7 月 11 日 21:10:27")

错误:从字符串“2011 年 7 月 11 日 21:10:27”转换为类型“日期”无效。

如果我们执行 iisreset,相同的代码就会开始正常工作。

这可能是由于 Windows 服务器/.NET 补丁的最新补丁造成的吗?请帮助我们解决此问题。

答案1

一般建议:不要使用 IISReset。仅回收有问题的应用程序池。

这虽然不能解决问题,但可以减少恢复服务时的停机时间。

答案2

我可能错了,但我怀疑它对某些日期有效,但对其他日期无效。

为了识别和处理日期,CDate 函数会根据系统区域设置得出理想的日期格式。请检查服务器上的区域设置,并确保输入格式与系统日期格式相匹配。

理想情况下,通过从 IFormatProvider 接口获取日期时间格式,以编程方式修复此问题:http://msdn.microsoft.com/en-us/library/9xk1h71t.aspx

相关内容