显示asp.net页面时出错

时间:2013-01-25 16:49:36

标签: asp.net webforms temp

在某些asp.net网页上重定向时在远程服务器上获取错误。

在日志文件中:

 <error date="2013-01-25T18:40:09" module="E24PublicPortal" login="-">
    <message>-</message>
    <exception>
      <Message Type="System.Web.HttpUnhandledException">Exception of type 'System.Web.HttpUnhandledException' was thrown.</Message>
      <InnerMessage Type="System.NullReferenceException">Object reference not set to an instance of an object.</InnerMessage>
      <Source>System.WebBoolean HandleError(System.Exception)</Source>
      <StackTrace>   at System.Web.UI.Page.HandleError(Exception e)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.UI.Page.ProcessRequest(HttpContext context)
   at ASP.vehicleinsurancepayment_aspx.ProcessRequest(HttpContext context) in c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\2babcf5b\7311d315\App_Web_kvw1yfpt.2.cs:line 0
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously)</StackTrace>
    </exception>
  </error>
  <error date="2013-01-25T18:40:09" module="E24PublicPortal" login="-">
    <message>-</message>
    <exception>
      <Message Type="System.NullReferenceException">Object reference not set to an instance of an object.</Message>
      <Source>koduLibsInt32 GetDRInt(System.Data.DataRow, System.String)</Source>
      <StackTrace>   at kodu.Libs.Utils.GetDRInt(DataRow row, String name)
   at kodu.Libs.DBFile.FillFromDataRow(DBFile file, DataRow rowFile)
   at kodu.Libs.DBFile.Load(Int32 kind, Int32 type, Int32 channelId, Int32 langId)
   at kodu.Libs.EmailTemplate.Load()
   at kodu.Portal.VehicleInsurancePayment.GetEmailText(PolicyOrder po, EmailTemplates template)
   at kodu.Portal.VehicleInsurancePayment.SendPaymentFailEmail()
   at kodu.Portal.VehicleInsurancePayment.Page_Load(Object sender, EventArgs e)
   at kodu.Portal.Code.E24Page.OnLoad(EventArgs e)
   at System.Web.UI.Control.LoadRecursive()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)</StackTrace>
    </exception>
  </error>

在本地机器上它工作得很好。如果我从temp中删除App_Web_kvw1yfpt.2.cs,也会继续收到错误。有什么建议 ?

由于

Kodu.Libs.Utils.GetDRInt(..)代码:

public static int GetDRInt(DataRow row, string name)
        {
            return row[name] != DBNull.Value ? (int)row[name] : -1;
        }

1 个答案:

答案 0 :(得分:0)

我将把函数设为:

public static int GetDRInt(DataRow row, string name)
{
    Debug.Assert(name != null, "Name must have a value");

    if(row == null || row[name] == null || row[name] == DBNull.Value)
       return -1
    else
       return (int)row[name];
}

并检查所有可能的空案例。