在更新了Silverlight 2 beat2后发现调试出了点问题,由于我们用的是Tomcat 5服务器做开发用,而在Beat2中在应用程序设置中无法指定一个任意的URL页面用于启动调试,总是提示需要选择项目中的一个页面,
而这样就无法在Tomcat 5上用真实运行环境进行调试。后经测试可
以采用迂回的方式进行调试,那就是在同一个解决方案中新建一个专门用于调试的Silverlight 2的应用程序,新建时选择“向承载此控件的解决方案添加新网站”,如下图:
然后在测试用的Page.xaml中添加一个按钮控件,并写事件代码如下:
private void btnTest_Click(object sender, RoutedEventArgs e)
{
HtmlPage.Window.Navigate(new Uri("你真实要调试的URL"));
}
把新建的Web项目设为启动项目,通过这个中转,就可以正常调试了。如果发现总是提示安全问题,则有可能是没有设置跨域访问,在你的应用程序根目录下添加如下文件:
crossdomain.xml就可以了,内容如下:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*"/>
<allow-http-request-headers-from domain="* " headers="*" />
</cross-domain-policy>
也可以在要调试的项目中建一个HTMLPage,加一个链接转到要调试的URL,但这样会在项目中增加一个页面,发布时需要删除,不如一个单独的测试项目来的干净,而且可以调试不同的项目。