2013-11-25 84 views
0

我照顾有新闻/博客部分的网站。像往常一样,管理员可以创建/编辑文章。它运行良好多年,但上周突然变得出现错误,提示“输入字符串格式不正确”。当创建/编辑文章。我还会收到来自系统的错误通知电子邮件,如下所示:突然出现数据格式错误

消息:将数据类型varchar转换为datetime时出错。

入口页面有日期字段,但我使用的是我一直使用的格式,自从上次成功创建/编辑文章以来没有任何更改。服务器中的文件和代码相同。它突然开始不让我创建/编辑任何东西。即使它不会让我在不改变文章内容的情况下保存文章。

它运行在ASP.Net(C#),MS SQL Server和IIS上。由于没有任何变化,我不知道从哪里开始,但可以发生这种情况?原因是什么?


我不知道Windows Server中的文化设置究竟是什么,但我没有看到任何不正确的设置。当前正确的区域,日期和时间在那里。在出现错误的日期之间没有人访问过服务器。 SQL服务器使用来自服务器的不同设置,但它是这样的。

该网站有一些部分,新闻/博客部分获取错误,但其他部分,也使用日期,不会出现错误。显然这些不同的部分使用不同的文件。所以我认为服务器/ SQL设置是可以的。但正如我所提到的,这些文件根本没有改变。

其他可能性?谢谢你的帮助。

+2

很难说没有代码。 – deathismyfriend

+0

由于代码没有改变,它运行良好多年,我不认为代码有问题。我在此阶段怀疑其他可能性。谢谢 – rubb3rfunk

回答

1

尝试检查是否有人更改了服务器上的文化设置(在其上运行MS SQL Server)。控制面板,地区和语言。

如果DateTime解析使用机器上的当前文化,则可以依赖于这些设置。

假设1: 在构建sql insert/update命令时,您的asp.net应用程序可能无需转换DateTime.ToString()。

假设2: 它以原样获取字符串并使用会话登录默认语言和格式(请参阅SQL中的SET LANGUAGE/SET FORMAT)。检查您的sql中的默认语言/格式是否已更改。