客户端计算机上未正确显示异常消息

时间:2011-09-08 10:55:58

标签: silverlight exception-handling argumentexception

我目前正在处理的项目是表单设计器(Silverlight应用程序),用户可以将控件从工具箱拖到工作画布​​,然后在属性窗格中提供其属性(如Visual Studio和Expression Blend)

我们在我们的测试服务器的IIS中部署了我们的应用程序,以便QC部门对其进行测试。有一个错误,即在不适用的字段(MinHeight和MinWidth)中输入“Auto”并未正确处理。我们所做的是继续分配这些无效值,然后捕获异常并显示一个带有异常消息的消息框:

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,其默认消息“Value不在预期范围内”。部署之后,开发人员进行了一些测试,异常处理按预期工作。令人惊讶的是,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 :(得分:0)

我认为从最终用户版本的Silverlight中删除了调试字符串。

本文解释了它: http://blogs.msdn.com/b/silverlightws/archive/2008/04/06/getting-full-exceptions-in-silverlight-2-beta-1.aspx