我在母版页的内容上有一个 silverlight 2.0 对象。我在本地看到它,但发布后在主机上看不到。根据微软博客,我添加了 2 种 MIME 类型的 xaml 和 xap,但没有出现 silverlight 对象。我看不到 silverlight 对象的内容,但我可以通过右键单击来配置 silverlight。请指导我。
5 回答
如果您可以右键单击并获取 Silverlight 菜单,那么您的object
代码显然正在呈现 OK,这是一个好的开始。
您没有提到您是否看到“百分比加载”蓝点动画?如果出现这种情况,则插件正在加载您的 XAP 文件 - 但如果您没有看到加载动画,则可能是“获取”XAP 文件本身存在问题。有两个常见的原因:
1)服务器不会提供 XAP 文件。这实际上很常见,因为默认情况下 IIS 不会提供未知文件扩展名,对于许多托管服务提供商来说,这包括.XAP
. 检查这很容易:只需将 XAP 的路径放在浏览器中并尝试下载它......例如。http://racereplay.net/ClientBin/Silverlight2.xap应该会弹出一个“下载此文件”对话框。
如果您收到404 Page Not Found,那么这就是您的页面无法正常工作的原因。
在这种情况下,解决方法是 (i) 更新 IIS 设置(您说您已经设置了 MIME 类型,所以只需检查它们是否正确)或 (ii) 将您的重命名.XAP
为.ZIP
(文件本身和<object>
标签中) . 大多数服务器对 ZIP 文件都没有问题,Silverlight 也不介意。
2) XAP 的路径可能是错误的。仔细检查路径是否正确,例如本例
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="../ClientBin/Silverlight2.xap"/>
如果上面的标签位于http://racereplay.net/SmhHalf/default.aspx
... 将 XAP 路径(源)复制到 URL 并验证您是否收到下载文件的提示,例如
http://racereplay.net/SmhHalf/../ClientBin/Silverlight2.xap
在这种情况下,解决方法只是让路径正确。您提到该<object>
标签位于母版页上,因此您可能需要一个绝对路径(例如“/ClientBin/Your.XAP”),因为我猜您的母版页可以用于/default.aspx
您网站上的任何子目录(/AboutUs/Help.aspx
或其他任何子目录) )。
正如安东尼所说,服务器上的软件是无关紧要的(除了允许.XAP
下载文件的 Web 服务器),所以不用担心那里的 .NET 版本。
如果您在尝试这些建议(可能还有实际的 URL 本身)时更新您的帖子,其他人可能会提供更多建议。
使用Fiddler进行调试以查看实际请求的内容。您确定您已将 XAP 发布到 HTML 期望的位置(通常是 ClientBin 文件夹)吗?
编辑:
补充问题是“silverlight 2.0 在主机上需要 .NET 3.0 还是 3.5?”
主机上运行的 .NET 版本并不重要。可以用普通的旧 HTML 交付 silverlight 应用程序。
如果您正在使用 WCF Web 服务,请确保您的 iis 根目录中有一个 clientaccesspolicy.xml 文件。如果您在启动时调用服务,它可能会导致项目抛出异常并停止执行。
我正在使用共享虚拟主机。将 xap 文件重命名为“zip”并更新标签中的文件名后,我的第一个 silverlight 应用程序正在运行。
谢谢。
是的,正如你们所说的那样,我也有问题,但是当我将 de 文件扩展名更改为 zip 时,它起作用了..
似乎必须在 MIME 的 IIS 中添加 xap 扩展
伙计们。