Получение исключения во время выполнения, когда я добавляю UserControl на страницу, но нет ошибок компилятора - PullRequest
0 голосов
/ 04 октября 2011

Исключение типа 'System.Web.HttpUnhandledException' было сгенерировано.

Step into: Stepping over non-user code 'System.Web.UI.Control.OnLoad'
Step into: Stepping over non-user code 'System.Web.UI.Control.LoadRecursive'
Step into: Stepping over non-user code 'System.Web.UI.Control.LoadRecursive'
Step into: Stepping over non-user code 'System.Web.UI.Control.LoadRecursive'
Step into: Stepping over non-user code 'System.Web.UI.Page.ProcessRequestMain'
Step into: Stepping over non-user code 'System.Web.UI.Page.ProcessRequest'
Step into: Stepping over non-user code 'System.Web.UI.Page.ProcessRequest'
Step into: Stepping over non-user code 'System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute'
Step into: Stepping over non-user code 'System.Web.HttpApplication.ExecuteStep'
A first chance exception of type 'System.NullReferenceException' occurred in App_Code.2x2ldwnl.dll
A first chance exception of type 'System.Exception' occurred in App_Code.2x2ldwnl.dll
A first chance exception of type 'System.ServiceModel.CommunicationException' occurred in mscorlib.dll
A first chance exception of type 'System.NullReferenceException' occurred in App_Code.2x2ldwnl.dll
A first chance exception of type 'System.Exception' occurred in App_Code.2x2ldwnl.dll

Мой Usercontrol также хорошо компилируется, когда строится на собственном, но все строит нормально, но затем вылетает, когда я запускаю отладку. Есть идеи, что может быть причиной этого?

Код пользователя:

Call Function
protected void DisplaySendMessageQuestion(string title, int messageType)
{
    UCResetPasswordDisplay.SetVisible(true);
    UCResetPasswordDisplay.MessageType = messageType.ToString();
    UCResetPasswordDisplay.Title = title;
}

Пользовательский контроль aspx.cs

public partial class UserControls__ResetPasswordPopup : System.Web.UI.UserControl
{
    public event EventHandler YesResetClick;
    public event EventHandler NoResetClick;


protected void Page_Load(object sender, EventArgs e)
{
    PnlAddConfirmation.CssClass = "PanelResetPass";
    PnlAddConfirmation.CssClass = "PanelYesNoCore";
    txtUsername.Focus();
}

public string MessageType
{
    get { return this.lblMessageType.Text; }
    set { this.lblMessageType.Text = value; }
}

public string UserData
{
    get { return this.txtUsername.Text; }
    set { this.txtUsername.Text = value; }
}

public string Title
{
    get { return this.lblEventTitle.Text; }
    set { this.lblEventTitle.Text = value; }
}

public bool IsVisible
{
    get { return this.PnlAddConfirmation.Visible; }
    set { this.PnlAddConfirmation.Visible = value; }
}

public string ErrorMessage
{
    get { return this.LblEventNotification.Text; }
    set { this.LblEventNotification.Text = value; }
}

public void SetVisible(bool Visible)
{
    PnlAddConfirmation.Visible = Visible;
  //  PnlScreenCover.Visible = Visible;
}

protected void ChangePasswordButton_Click(object sender, EventArgs e)
{
    if (YesResetClick != null)
    {
        YesResetClick(this, EventArgs.Empty);
    }
}
protected void ImgBtnCancel_Click(object sender, EventArgs e)
{
    if (NoResetClick != null)
    {
          NoResetClick(this, EventArgs.Empty);
        }
    }
}

Ответы [ 2 ]

1 голос
/ 05 октября 2011

На основании кода, который вы разместили, должно быть выполнено одно из следующих действий:

  • PnlAddConfirmation равно нулю
  • txtUsername равно нулю

Поскольку NullReferenceException выбрасывается в методе OnLoad - и, следовательно, обработчик Page_Load вашего элемента управления.

Одна вещь, которую вы можете сделать, это включить прерывание для всех исключений в VS - Откройте меню: Отладка -> Исключения. В появившемся диалоговом окне (ниже) убедитесь, что установлен флажок «Брошено».

Exceptions configuration

С подключенным отладчиком вы должны быть отправлены непосредственно в строку кода, где происходит ошибка. Убедитесь, что в вашем web.config также установлен <compilation mode="debug">, иначе у вас не будет необходимых символов для правильной работы.

0 голосов
/ 06 октября 2011

Это был элемент управления validator, указывающий для проверки измененного имени текстового поля. даже в режиме отладки, как вы и предполагали, отладчик не заметил этого. Я переместил все это в чистый проект, и отладчик наконец заметил это.

Я был ragin, моя работа должна быть обновлена ​​до vs2010 и иметь более отсталый VS отладчик, имя ошибки должно быть замечено как ошибка, являющаяся одной из самых распространенных человеческих ошибок и все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...