Сообщение об исключении не отображается правильно на клиентских компьютерах - PullRequest
0 голосов
/ 08 сентября 2011

Проект, над которым я сейчас работаю, - это дизайнер форм (Приложение Silverlight), в котором пользователь может перетащить элемент управления с панели инструментов на рабочий холст, а затем предоставить его свойства на панели свойств (например, Visual Studio и Expression Blend).

Мы развернули наше приложение в IIS нашего тестового сервера для отдела контроля качества, чтобы протестировать его. Существует определенная ошибка, из-за которой ввод «Авто» в полях, где это не применимо (MinHeight и MinWidth), обрабатывается неправильно. Мы продолжили присваивать эти недопустимые значения, просто захватили исключение и отобразили окно сообщения с сообщением об исключении:

private void SetControlMinWidth(Control control, TextBox setterTextBox, bool isAdvancedControl = false)
{
    try
    {
        double minWidth = !string.IsNullOrEmpty(setterTextBox.Text) ?
               (
                   setterTextBox.Text.Trim().ToUpper() == "AUTO" ? double.NaN : Convert.ToDouble(setterTextBox.Text)
               ) : control.MinWidth;

        control.MinWidth = minWidth;
    }
    catch (Exception ex)
    {
        CustomMessageBox.Show(ex.Message.ToString());
    }
}

Исключением, которое передается, является ArgumentException с его сообщением по умолчанию «Значение не попадает в ожидаемый диапазон». После развертывания разработчики провели некоторое тестирование, и обработка исключений работает, как и ожидалось. Удивительно, но сообщение, которое видят тестеры QC, не является сообщением по умолчанию ArgumentException, а

[Arg_ArgumentException]
Arguments: 
Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=4.0.60351.0&File=mscorlib.dll&Key=Arg_ArgumentException

Кто-нибудь сталкивался с таким сценарием, когда на компьютерах разработчиков отображается правильное сообщение об исключении, а на компьютерах QC-тестера - нет? Помните, что разработчики тестируют развернутое приложение и не запускаются из Visual Studio.

1 Ответ

0 голосов
/ 08 сентября 2011

Я думаю, что строки отладки удалены из версии Silverlight для конечного пользователя.

Эта статья объясняет это: http://blogs.msdn.com/b/silverlightws/archive/2008/04/06/getting-full-exceptions-in-silverlight-2-beta-1.aspx

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