Null对象仅在Web C#asp上引用错误

时间:2011-03-09 18:28:33

标签: c# asp.net nullreferenceexception

我知道这个问题已被问到,但我没有看到任何可以帮助我的事情。我所拥有的是一个票务应用程序,它记录故障单然后向合适的人发送电子邮件。当我在我的机器上运行它时,它可以工作,但在我的服务器上,我得到空对象引用错误。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web.Security;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Oracle.DataAccess.Client;
using System.Text;
using System.Data.OleDb;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Net.Mail;

namespace Ticketing {
    public partial class _Default : System.Web.UI.Page
    { 

        protected void Page_Load(object sender, EventArgs e)
        {
            "201157"; 
        }

        protected void btn_submit_Click(object sender, EventArgs e)
        {
            DateTime dtnow = DateTime.Now;
            OracleConnection conn = new OracleConnection(Global.oracle);
            conn.Open();
            StringBuilder sqls = new StringBuilder("Insert statment")

            OracleCommand cmd = new OracleCommand(sqls.ToString(), conn);
            cmd.CommandType = CommandType.Text;
            cmd.Parameters.Add(":REASON", txt_reason.Text);

            cmd.ExecuteNonQuery();
            cmd.Dispose();
            conn.Close();
            // end insert
            System.Threading.Thread.Sleep(2000);

            btn_refresh_Click(null, null);
            btn_email_Click(null, null);

            //send email
            MailMessage mail = new MailMessage();

            mail.From = new MailAddress("email@email.com");

            if (dd_urgency.SelectedValue.ToString() == "Critical")
            {
                mail.To.Add("email@email.com");
                mail.To.Add("email@email.com");
                mail.To.Add("email@email.com");

                mail.To.Add(lbl_email.Text);

            }
            else if (dd_urgency.SelectedValue.ToString() == "Urgent")
            {
                mail.To.Add("email@email.com");
                mail.To.Add("email@email.com");
                mail.To.Add("email@email.com");

                mail.To.Add(lbl_email.Text);
            }
            else if (dd_urgency.SelectedValue.ToString() == "Normal")
            {
                mail.To.Add("email@email.com");
                mail.To.Add(lbl_email.Text);
                if (dd_location.SelectedValue.ToString() == "XL")
                {
                    mail.To.Add("email@email.com");
                } 
            }
            else if (dd_urgency.SelectedValue.ToString() == "None")
            {
                mail.To.Add("email@email.com");
                mail.To.Add(lbl_email.Text);
                if (dd_location.SelectedValue.ToString() == "XL")
                {
                    mail.To.Add("email@email.com");
                }
            }

            mail.IsBodyHtml = true;

            mail.Subject = ("Ticket Id " + (label_id.Text) +" Urgency: " + dd_urgency.SelectedValue.ToString()) + "  At " + (dd_location.SelectedValue.ToString());

            mail.Body = txt_reason.Text;

            SmtpClient smtp = new SmtpClient("basic.smtp.ttu.edu");

            try
            {
                smtp.Send(mail);
            }
            catch (SmtpException ex)
            {
                Response.Write("<script>alert('There has been an error please call Travis Jorge at ')</script>");
            }

            //  this.Session.Abandon();


            Response.Write("<script>alert('You have submitted your trouble ticket we will be right with you. If you need immediate assistance contact Travis Jorge.')</script>");

            txt_reason.Text = "";
            // lbl_email.Text = "";
            label_id.Text = "";
            dd_location.SelectedIndex = 0;
            dd_urgency.SelectedIndex = 0; 
        }

        protected void btn_refresh_Click(object sender, EventArgs e)
        {
            OracleConnection conn1 = new OracleConnection(Global.oracle);
            conn1.Open();
            StringBuilder sqls1 = new StringBuilder(Select statement)

            OracleCommand cmd1 = new OracleCommand(sqls1.ToString(), conn1);
            cmd1.CommandType = CommandType.Text;

            OracleDataReader dr = cmd1.ExecuteReader();
            dr.Read();
            if (dr.HasRows)
            {
                if (!dr.IsDBNull(0))
                {
                    label_id.Text = dr.GetDecimal(0).ToString();
                }
            }
            cmd1.Dispose();
            conn1.Close();
        }

        protected void btn_email_Click(object sender, EventArgs e)
        {
            //Select email for return email

            OracleConnection conn2 = new OracleConnection(Global.oradb);
            conn2.Open();
            StringBuilder sqls2 = new StringBuilder(select statement)
            OracleCommand cmd2 = new OracleCommand(sqls2.ToString(), conn2);
            cmd2.CommandType = CommandType.Text;

            OracleDataReader dr2 = cmd2.ExecuteReader();
            dr2.Read();
            if (dr2.HasRows)
            {
               if (!dr2.IsDBNull(0))
                {
                    lbl_email.Text = dr2.GetString(0).ToString();
                }
            }
            cmd2.Dispose();
            conn2.Close();
        }
    } 
}

我可以告诉你,所有的SQL语句都可以运行,而且这个代码在没有btn_email函数及其相关命令的服务器上运行正常。任何帮助,将不胜感激。此外,我知道页面可以使用对象请求的所有值。

1 个答案:

答案 0 :(得分:0)

检查您的web.config文件中是否有mailSettings。

<system.net>
    <mailSettings>
        <smtp>
            <network
                host="smtp.yourmailserver.com"
                port="25" />
        </smtp>
    </mailSettings>
</system.net>
相关问题