我是Silverlight 2.0的新手,我实际上是尝试在Sharepoint 2007中将Silverlight部署为webpart。
我完成了以下安装:
我已经创建了示例Silverlight应用程序,并从解决方案的bin目录中获取了xap文件。
然后我写了一个标准的Sharepoint webpart,其中引用了Web.Extensions
和Microsoft.Silverlight
dll:
using System;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;
using System.Web.UI.SilverlightControls;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;
namespace SLWeb_Part1
{
[Guid("c890f832-05d2-4724-ae25-5f34c827c6c2")]
public class SLWeb_Part1 : System.Web.UI.WebControls.WebParts.WebPart
{
public SLWeb_Part1()
{
}
[WebBrowsable(true),
Personalizable(PersonalizationScope.User),
WebDescription("Location of the Silverlight XAP package"),
WebDisplayName("XAP Location")]
public string XAPSource { get; set; }
[WebBrowsable(true),
Personalizable(PersonalizationScope.User),
WebDescription("Silverlight Controld ID "),
WebDisplayName("Control ID")]
public string ControlID { get; set; }
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page);
if (scriptManager == null)
{
scriptManager = new ScriptManager();
this.Controls.Add(scriptManager);
}
}
protected override void CreateChildControls()
{
base.CreateChildControls();
Silverlight sl = new Silverlight();
sl.Source = XAPSource;
sl.ID = ControlID;
sl.Width = new Unit(400);
sl.Height = new Unit(400);
this.Controls.Add(sl);
}
}
我也将相同的部署到Sharepoint站点,然后我输入了Sharepoint站点的web.config
文件,以包含Silverlight和Web.Extension程序集,如:
<add assembly="System.Web.Silverlight, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
然后我将application/x-silverlight-app
作为IIS中的Web应用程序的MIME类型包含在内。
完成所有这些之后......我能像往常一样浏览网站,但我看不到Silverlight组件正在运行....而且它也没有抛出任何错误......
有人能帮助我最早解决这个问题吗? 我是否会错过配置中的任何步骤?
提前致谢。
答案 0 :(得分:1)
我能够通过确保为ASP.NET AJAX正确配置我的SharePoint web.config来解决我的问题。默认情况下,它未正确设置。有关如何执行此操作的详细信息,请访问此站点:
祝你好运!答案 1 :(得分:0)
您最好的出发点是从u2u的人那里阅读Silverlight for SharePoint蓝图 - http://www.codeplex.com/SL4SP
答案 2 :(得分:0)
我正在尝试做同样的事情,并遇到同样的问题。我已将其跟踪到我认为是ScriptManager的问题。
在正常的ASPX页面(我的Silverlight正常工作)中,ScriptManager似乎将其添加到页面中:
<script src="/ScriptResource.axd?d=Un3ROg6ZO8lU8fUlhDz-soUWbkyxgh5pk-teueIPxbpft-XX1Z5TrN4P3iF-wiGinTLoxOt5mA420kQULjqoDnUjO5gjwu0sPPlLgxOq-5g1&t=ffffffff888edfb1" type="text/javascript">
</script>
<script type="text/javascript">
//<![CDATA[
if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.');
//]]>
</script>
但是,我的WebPart添加的ScriptManager不会将此代码添加到页面中。因此,当浏览器到达以下尝试加载Silverlight的代码时,它会失败,因为Sys对象未定义。
<script type="text/javascript">
//<![CDATA[
Sys.UI.Silverlight.Control.createObject('Xaml1_parent', '\u003cobject type="application/x-silverlight-2" id="Xaml1" style="height:100%;width:500px;">\r\n\t\u003cparam name="MinRuntimeVersion" value="2.0.31005.0">\r\n\r\n\t\u003c/param>\u003ca href="http://go2.microsoft.com/fwlink/?LinkID=114576&v=2.0">\u003cimg src="http://go2.microsoft.com/fwlink/?LinkID=108181" alt="Get Microsoft Silverlight" style="border-width:0;" />\u003c/a>\r\n\u003c/object>');
//]]>
</script>
希望这至少有助于推动讨论。
答案 3 :(得分:0)
在关注Toms后,如果使用.net 3.5,则将webconfig system.web.extensions值从1.06改为3.5.0