2009-02-24 142 views
1

我正在制作WebPart for SharePoint,它将实例化Silverlight UserControl并为其提供一些数据。我的问题是,当我创建了我的示例WebPart并仅实例化Silverlight控件时,Web部件添加到页面或显示在Web部件库中而不呈现为空时呈现错误页面,显示“未找到文件”。在日志文件中找不到找不到的文件或为何引发此错误。这里是我的代码:SharePoint中的Silverlight WebPart

using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.SilverlightControls; 

namespace TestSLWP { 
    public class CustomWebPart1 : WebPart { 

    protected override void CreateChildControls() { 
     Label lblHello = new Label(); 
     lblHello.Text = "Hello"; 
     Controls.Add(lblHello); 
     Silverlight sl = new Silverlight(); 
    } 
    } 
} 

我已经添加引用System.Web.Extensions程序和System.Web.Silverlight到项目中。它们位于GAC中,并且该webpart是在SharePoint所在的同一台计算机上编写和编译的。如果我将CreateChildControls()更改为:

protected override void CreateChildControls() { 
    Silverlight sl = new Silverlight(); 
    sl.ID = "CustomWebPart1SL"; 
    sl.Source = "/Silverlight/CustomWebPart.xap"; 
    this.Controls.Add(sl); 
} 

我得到相同的错误。另外,如果我删除sl.Source中的第一个斜杠,即使该文件存在于与SharePoint相同的应用程序池中的虚拟目录中,也会得到相同的错误。因此,因为只是实例化Silverlight对象时出现错误,请相信无法找到的文件不是我的XAP。

什么文件不能SharePoint找到,我该怎么办?

这里的错误消息:

http://www.freeimagehosting.net/uploads/2dca8dbdfb.png

回答

1

启用Silverlight的需要的web配置修改一个lagre量。你添加了那些吗?

+0

我不能说我做了大量的web.config修改,我只向SafeControls添加了组件“System.Web.Silverlight,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”。我还将这两种MIME类型添加到IIS中。我应该做其他修改吗? – 2009-02-25 08:17:30

+0

哦,我分享了,当然,我也将我的webpart添加为SafeControl。我已经尝试在蓝图中添加sectionGroup system.web.extensions&co,但仍然收到“找不到文件”。 – 2009-02-25 08:28:56

0

可能存在Silverlight控件的存储文件夹问题。您必须在web.config中注册此存储的路径为安全路径(例如,在web.config行中查找“〜/ controltemplates”)。