实体框架 - SQL Server 2005 - IIS 服务器日期时间问题



我正在使用MVC3和实体框架。在我的应用程序中,我需要通过 EF 调用 SQL Server 2005 中的存储过程,以根据传递datetime参数搜索一些数据。

在当地环境中,一切似乎都运行良好。但是在将其托管到 IIS 中后,我在尝试从日期 13-08-2012 进行搜索时出现异常(我猜 13 在 SQL 中占月)

错误说

SqlDateTime overflow。必须介于 1/1/1753 12:00:00 AM 和 9999-12-31 下午11:59:59

我理解错误是因为System.DatetimeSqlDatetime之间的日期时间格式之间的差异。

但是我不明白为什么它在我使用相同的SQL Server的本地环境中没有任何问题,但在IIS服务器中托管后出现此错误。

此问题是否有任何解决方法?

我的问题现在已经解决了。IIS 中的区域性设置存在问题。我已将这些行添加到我的应用程序 web.config 中,它现在工作正常。

<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-GB" uiCulture="en-GB"/>

有关详细信息,请查看 IIS 中的区域性设置问题

IT 取决于服务器的文化,您可以使用固定格式格式化您的文化,在您的日期 13-08-2012,它认为 13 是月。

//Here an example of formatting with invariant culture
CultureInfo yourCulture = CultureInfo.InvariantCulture;
yourValue.ToString("yourFormat",yourCulture));

验证日期时间格式。此外,DateTime的范围与SqlDateTime不同。如果您收到空值,则会遇到麻烦。

相关内容

  • 没有找到相关文章

最新更新