我照看一个有新闻/博客栏目的网站。像往常一样,管理员可以创建/编辑文章。它一直运行良好多年,但突然上周,我收到一个错误说“输入字符串格式不正确”。在创建/编辑文章时。我还从系统收到错误通知电子邮件,如下所示;
消息:将数据类型varchar转换为datetime时出错。
条目页面有日期字段,但我使用的格式与我上次使用的格式相同,自上次成功创建/编辑文章以来没有任何变化。服务器中的相同文件和代码。它突然开始不让我创建/编辑任何东西。即使它不会让我在不改变文章任何内容的情况下保存文章。
它在ASP.Net(C#),MS SQL Server和IIS上运行。由于没有任何改变,我不知道从哪里开始,但这可能会发生吗?会是什么原因?
我不知道Windows Server中的文化设置究竟是什么,但我没有看到任何不正确的设置。当前正确的地区,日期和时间都在那里。没有人在日期出错之间访问服务器。 SQL服务器使用服务器设置中的不同设置,但它就是这样的。
网站有一些部分,新闻/博客部分得到错误,但另一部分也使用日期,不会出错。显然,这些不同的部分使用不同的文件。所以我认为服务器/ SQL设置没问题。但正如我所提到的,文件根本没有改变。
还有其他可能吗?谢谢你的帮助。
答案 0 :(得分:1)
尝试检查是否有人更改了服务器上的文化设置(运行MS SQL Server的位置)。控制面板,区域和语言。
如果DateTime解析使用计算机上的当前区域性,则它可以依赖于这些设置。
假设1: 在构造sql insert / update命令时,您的asp.net应用程序可能不必转换DateTime.ToString()。
假设2: 它按原样获取字符串并使用会话登录默认语言和格式(请参阅SQL中的SET LANGUAGE / SET FORMAT)。检查sql中是否更改了默认语言/格式。