ASP.NET站点崩溃无法转换DBNull.Value以键入' System.Guid'

时间:2015-09-13 17:00:43

标签: c# asp.net linq

我有一个崩溃的ASP.NET应用程序,我无法在本地重现此问题。当我使用DebugDiag打开崩溃转储文件时,我看到了许多以下异常的实例。

  

无法将DBNull.Value强制转换为' System.Guid'。请使用可空的   类型。 System.Data.DataRowExtensions + UnboxT`1 [[的System.Guid,   mscorlib程序]。ValueField(System.Object的)
  System.Data.DataRowExtensions.Field [的System.Guid,   mscorlib]](System.Data.DataRow,System.String)
  Extension.FieldSub [[System.Guid,mscorlib]](System.Data.DataRow,   System.String)

以下是堆栈跟踪中的应用程序代码。我想知道LINQ后台线程是否可能导致崩溃。如果它是LINQ后台线程,那么数据库和Web应用程序如何处理此问题?看起来它会持续一段时间,但随着这些异常堆积最终它会崩溃。

public static T FieldSub<T>(this DataRow row, string columnName)
{
     object result = null;
     try
     {
         result = row.Field<T>(columnName);
     }
     catch {}

     if (result == null)
     {
         result = default(T);
     }
     return (T)result;
}

0 个答案:

没有答案