2010-03-04 2 views
2

Вот код для события нажатия кнопки;Почему этот код обработчика события вызывает ссылку объекта, не установленную на экземпляр объекта. Ошибка (присутствует только на реальном сервере, нормально на dev)?

Protected Sub CompetenciesButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CompetenciesButton.Click 
     Dim con As String = WebConfigurationManager.ConnectionStrings("foo").ToString() 
     Dim selectedrow As String = Competencies.SelectedValue.ToString 
     Dim s As String = "SELECT * from foo WHERE (" & selectedrow & " =1)" 
     Dim DataAdapter As New SqlDataAdapter(s, con) 
     Dim Result As New DataTable 
     If Not IsNothing(DataAdapter) Then 
      DataAdapter.Fill(Result) 
      DataAdapter.Dispose() 
     End If 
     GV.DataSource = Result 
     GV.DataBind() 
     GV2.DataSource = Result 
     GV2.DataBind() 
    End Sub 

Вот стек:

[NullReferenceException: Object reference not set to an instance of an object.] 
    administration_Search.CompetenciesButton_Click(Object sender, EventArgs e) +28 
    System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105 
    System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107 
    System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7 
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11 
    System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746 

Все отлично работает в автономном режиме в VS2008, но я получаю эту ошибку после публикации.

Спасибо.

+1

какая линия линия 28 точно? – Pbirkoff

+0

, это DataAdapter.Dispose() line, thanks, phil – Phil

ответ

1

Является ли ваша WebConfiguration одинаковой на обоих dev и вживую?

Если вам не хватает строки подключения foo на реальном сервере, тогда объект con будет иметь значение null.

И если у вас все еще есть проблемы с его поиском, попробуйте включить блок try/catch, установив строчную переменную progress вне try, обновив каждую строку в логике и зарегистрировав ошибку вместе с текущим значением progress. Это должно помочь сузить место, где это происходит.