У меня есть сайт ASP.NET (VB.NET), который я пытаюсь очистить. Когда он был изначально создан, он был написан без обработки ошибок, и я пытаюсь добавить его, чтобы улучшить взаимодействие с пользователем.
Try
If Not String.IsNullOrEmpty(strMfgName) And Not String.IsNullOrEmpty(strSortType) Then
If Integer.TryParse(Request.QueryString("CategoryID"), i) And String.IsNullOrEmpty(Request.QueryString("CategoryID"))
MyDataGrid.DataSource = ProductCategoryDB.GetMfgItems(strMfgName, strSortType, i)
Else
MyDataGrid.DataSource = ProductCategoryDB.GetMfgItems(strMfgName, strSortType)
End If
MyDataGrid.DataBind()
If CType(MyDataGrid.DataSource, DataSet).Tables("Data").Rows.Count > 0 Then
lblCatName.Text = CType(MyDataGrid.DataSource, DataSet).Tables("Data").Rows(0).Item("mfgName")
End If
If MyDataGrid.Items.Count < 2 Then
cboSortTypes.Visible = False
table_search.Visible = False
End If
If MyDataGrid.PageCount < 2 Then
MyDataGrid.PagerStyle.Visible = False
End If
Else
lblCatName.Text &= "<br /><span style=""fontf-size: 12px;"">There are no items for this manufacturer</span>"
MyDataGrid.Visible = False
table_search.Visible = False
End If
Catch
lblCatName.Text &= "<br /><span style=""font-size: 12px;"">There are no items for this manufacturer</span>"
MyDataGrid.Visible = False
table_search.Visible = False
End Try
Теперь мы пытаемся избежать генерации ошибки 500, перехватывая исключения. В строке запроса может быть три элемента, но здесь важны только два. В моей тестовой среде и в Visual Studio, когда я запускаю этот сайт, не имеет значения, находится ли этот элемент в строке запроса. В производстве это имеет значение. Если этот третий элемент отсутствует (SubCategoryID) в строке запроса, вместо данных из базы данных отображается «Нет элементов для этого производителя».
В двух разных средах я вижу два разных пути выполнения кода, несмотря на одинаковые URL-адреса и одинаковую базу кода.
Сайт работает на Server 2003 с IIS 6.
Мысли
EDIT:
В ответ на приведенный ниже ответ я сомневаюсь, что это ошибка соединения (хотя я вижу, к чему вы клоните), поскольку, когда я добавляю SubCategoryID в строку запроса, сайт работает правильно (отображая данные из базы данных). *
Также, пожалуйста, дайте мне знать, если у вас есть какие-либо предложения по тестированию этого сценария, без развертывания кода обратно в производство (он был отменен).