我有一个崩溃的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;
}