我用MVC3和Entity Framework工作。 在我的应用程序需要调用SQL Server 2005中的存储过程通过EF根据搜索一些数据datetime
传递的参数。
似乎一切都在本地环境做工精细。 但它托管到IIS后我得到尝试从日期搜索异常13-08-2012
(13正在为本月在SQL我猜)
错误说
SQLDATETIME溢出。 必须是1753年1月1日12:00:00 AM和12/31/9999下午11:59:59之间
我的理解错误是因为之间的日期时间格式之间的差异System.Datetime
和SqlDatetime
。
但我不明白为什么这是工作没有任何问题,在使用相同的SQL Server,但在IIS服务器托管后得到这个错误我的本地环境。
是否有此问题的任何解决方法吗?
我现在的问题是解决了。 问题是,在IIS中的文化设置。 我已经添加了这些行到我的应用程序的web.config,现在是工作的罚款。
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-GB" uiCulture="en-GB"/>
欲了解更多信息,请参阅此问题在IIS区域性设置
它取决于服务器的文化,你可以用不变的格式来格式化你的文化,你的日期13-08-2012,它认为13个月。
//Here an example of formatting with invariant culture
CultureInfo yourCulture = CultureInfo.InvariantCulture;
yourValue.ToString("yourFormat",yourCulture));
验证日期时间格式。 此外, DateTime
不具有相同的范围SqlDateTime
。 如果你收到一个空值,你会遇到麻烦。