【问题标题】:Am I fundamentally misunderstanding how Silverlight runs? (debugging issues)我是否从根本上误解了 Silverlight 的运行方式? (调试问题)
【发布时间】:2011-01-08 05:07:32
【问题描述】:

我有一个包含 ASP.Net 4 网站和 Silverlight 4 项目的 vs2010 解决方案。

该网站链接到 Silverlight 项目(“地图”),并且 ClientBin 文件夹包含一个 Map.xap 文件。

地图项目非常简单。它包含默认的 App.xaml 和 App.xaml.cs 文件。 MainPage.xaml 文件如下所示

<UserControl x:Class="Map.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="380" d:DesignWidth="800">

<Canvas x:Name="MainCanvas" Width="800" Height="380">
    <Canvas.Background>
        <ImageBrush ImageSource="map.png" Stretch="None"/>
    </Canvas.Background>
</Canvas>

其背后的代码如下所示:

public partial class MainPage : UserControl
{

        public MainPage()
        {
            InitializeComponent();
            throw new Exception();
        }

}

在其中一个网站页面中,我的默认对象指向我的 Silverlight xap

当我运行该网站时,我在 Silverlight 窗口的 Canvas 上看到了我的背景图像,所以我知道它在这个意义上是有效的。但是,我无法中断 MainPage.xaml.cs 文件(在 IE 中)中设置的任何断点。我已经检查了 Silverlight 调试的正确设置。

看到我在 MainPage 构造函数中抛出的异常了吗?我也没有看到。事实上,我放在那里的任何东西似乎都没有运行,但我知道 xaml 正在渲染,因为我可以看到我的画布背景。我在这里没有得到什么?

【问题讨论】:

    标签: asp.net silverlight


    【解决方案1】:

    我遇到了这个问题,我们解决它的方法是手动将进程附加到调试器。

    【讨论】:

    • 我一直都是这样做的。我正在附加到我的 aspnet 进程以进行调试。
    • 那是哪个进程? Silverlight 应用程序不在 aspnet 进程中运行。
    • 您必须确保将调试器附加到 IE 进程。
    • @Peter - 所以是的,我完全误解了它。不知道为什么我认为它会影响 asp 进程。谢谢。
    【解决方案2】:

    对于它的价值,你做对了,只是连接不正确。如果您还没有,只需从 VS2010 创建一个新的 Silverlight 应用程序并重新开始以确保一切都正确连接。您绝对可以附加到流程,但您不应该“必须”。

    VS2010 将网格而不是画布作为默认基础。这没关系,你可以使用任何一个,但是因为我在那里看到了一个画布,这让我质疑你是如何创建项目的。如果您关注一本书等,则可能错过了该过程的某些部分。

    确保在 Web 项目属性下查看 Silverlight 应用程序选项卡,并确保网格将 Silverlight 项目列为“地图”,Web 中的路径应为“ClientBin”,配置特定文件夹为“否” ”。

    我认为您在 Silverlight 项目中不需要任何特别之处,但请确保将其设置为在 DEBUG 模式下构建,而不是 RELEASE。 (我以前犯过这个愚蠢的错误)。也为任何 CPU 设置它。

    最后,我知道您说您使用的是 IE,但请确保它不是 FF 等。FF 可以设置为调试 SL 应用程序,但需要先进行调整。

    【讨论】:

    【解决方案3】:

    您是否在 Web -> Debuggers 下的 ASP.NET 网站项目属性中启用了 Silverlight 调试?

    【讨论】:

      【解决方案4】:

      您是否尝试过清除浏览器的缓存?我知道当我使用 FireFox 时,它会缓存 XAP,而 Visual Studio 调试器找不到正确的符号。

      如果这是问题所在,那么这里有一个巧妙的技巧来解决这个问题,从另一个 Stackoverflow post 窃取。只需将其放在托管 silverlight 应用程序的 ASPX 页面中即可。

      <param name="source" value="ClientBin/App.xap?<%= DateTime.Now.Ticks %>" />
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-30
        • 1970-01-01
        • 1970-01-01
        • 2021-03-31
        • 2018-06-10
        相关资源
        最近更新 更多