来自C#后端的无效CastException

来自C#后端的无效CastException,c#,sql,datetimeoffset,C#,Sql,Datetimeoffset,由于DateTimeOffset相关问题的无效转换,我收到了从本地环境到开发环境的不同行为。奇怪的是,同样的web应用程序也在测试环境中,并且工作正常。我唯一收到错误的地方是在开发中,但没有在测试中或在我的本地计算机中 我收到的错误信息: [InvalidCastException: Specified cast is not valid.] System.Data.SqlClient.SqlBuffer.get_DateTime() +6531011 System.Data.Sq

由于DateTimeOffset相关问题的无效转换,我收到了从本地环境到开发环境的不同行为。奇怪的是,同样的web应用程序也在测试环境中,并且工作正常。我唯一收到错误的地方是在开发中,但没有在测试中或在我的本地计算机中

我收到的错误信息:

 [InvalidCastException: Specified cast is not valid.]
   System.Data.SqlClient.SqlBuffer.get_DateTime() +6531011
   System.Data.SqlClient.SqlDataReader.GetDateTime(Int32 i) +61
   G_C.G_C_CodeGroupData.ReadDBRowForMaint() +765
   G_C.G_C_CodeGroupEdit.OnInit(EventArgs e) +341
   System.Web.UI.Control.InitRecursive(Control namingContainer) +186
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2098
从C#代码中,我调用了一个存储过程,该过程通过以下方式从列中检索数据:

dr.GetDateTimeOffset(4).ToLocalTime().DateTime.ToString()
另一方面,存储过程只是一个select语句,它根据id选择记录

该特定列的列定义为:

[VAR_CREATE_DATE] [datetimeoffset](7) NULL CONSTRAINT [DF_G_C_CODE_VARIABLE_VAR_CREATE_DATE]  DEFAULT (sysdatetimeoffset()),
我无法摆脱这个错误可能有一个非常明确的原因,但现在我正在逃避它。我看不出错误在哪里;或者是什么触发了它

另外,本地和测试环境使用相同的数据库和表定义

谢谢,,
N.

服务器上的本地时间都一样吗?相同的区域设置?除非我误读了这里的内容,否则您的调用堆栈似乎与您的代码片段不匹配。调用堆栈讨论方法GetDateTime,而源代码调用GetDateTimeOffset。这让我觉得您没有部署到开发服务器上的代码,我也要说同样的话。查看参考源,GetDateTimeOffset不调用GetDateTime。当报告此错误时,该网站最近已迁移。我在整个解决方案中查找了该调用,但没有找到,只有ReadDBRowForMaint()。服务器上的本地时间都是一样的…但现在我将检查该应用程序的web服务,以防万一。。。