2011-11-03 82 views
2

我们有一个客户想要使用我们的服务器上托管的SilverLight应用程序。但是他们在访问应用程序时遇到问题Silverlight主机网页会引发2103错误。看起来XAP文件没有直接下载到浏览器,而是被防火墙重定向到防火墙扫描XAP文件的页面,然后作为下载通过浏览器发送。防火墙后面的Silverlight不让XAP文件通过

有没有办法解决这个问题?还是有人曾经有过这个问题?不幸的是,防火墙管理员不能阻止扫描.XAP文件,因此它们将直接被提供。

我们尝试了一种“黑客”将.XAP文件重命名为.JPG,以防止直接对文件进行扫描并直接进行流式传输,但这也无效。

有人有什么想法吗?

回答

1

在尝试了几件事情后,JPG hack上的一个变体似乎可以工作。我们将请求修改为XAP文件,如下所示:/ClientBin/app.xap?file.jpg

但是我明白这不是真正的解决方案,我们会尝试将防火墙规则调整为仅传递XAP文件。

1

我从来没有尝试过这一点,但它是值得一试:

启用运行Silverlight应用程序外的浏览器(在Visual Studio中:项目属性 - > silvelright,请选中该复选框)。然后,向他们发送xap文件,并让他们安装应用程序using sllauncher.exe。确保使用适当的URL作为originUri参数。

安装完成后,当浏览到安装了SL应用程序的网页时,浏览器可能会使用已安​​装的XAP,而不是尝试下载它。

编辑:如果应用在浏览器中正常工作,他们可以继续在浏览器中使用该应用,而无需导航到您的网页。

+0

这值得一试,谢谢你的提示。但在实践中这个项目不会很方便。该公司拥有超过500名用户,拥有遍布全球的台式机,并且使用安装方法作为silauncher的使用非常有限。 –

+0

您是否可以修改防火墙规则?浏览器下载XAP而不是加载它的原因可能是MIME类型问题。浏览器从防火墙下载时能否看到HTTP标头? 'Content-Type'头文件应该设置为'application/x-silverlight-app'。另外值得关注的是,如果有'Content-Disposition'标题,这不应该是。 –

+0

标题是正确的,没有问题。 –