SharePoint 中的 Silverlight WebPart

Posted

技术标签:

【中文标题】SharePoint 中的 Silverlight WebPart【英文标题】:Silverlight WebPart in SharePoint 【发布时间】:2010-10-09 13:48:59 【问题描述】:

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

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 中,并且 Web 部件是在 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 配置修改。这些是你加的吗?

【讨论】:

不能说我做了大量的web.config修改,我只添加了程序集“System.Web.Silverlight, Version=2.0.5.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35 “到 SafeControls。我还将这两种 mime 类型添加到 IIS。我还应该做其他修改吗? 哦,我应该补充一下,当然我也将我的 webpart 添加为 SafeControl。我已经尝试在蓝图中添加 sectionGroup system.web.extensions&co,但我仍然得到“找不到文件”。 感谢您的提示,连同下面的链接,我能够以应有的方式获取此文件。 :-)【参考方案2】:

您好,我找到了有关如何让 Silverlight Web 部件在您的应用程序上运行的完整演练:http://www.vbforums.com/archive/index.php/t-557072.html

如您所见,除了程序集注册之外,web.config 中还添加了一些内容。

【讨论】:

感谢您提供的链接,我会彻底检查并回复您的结果 :-) 这个页面非常适合指出需要进入 Web.Config 的确切内容,非常感谢。 :-) 我不知道我错过了那么多。此外,即使我已经检查并再次检查,GAC 中缺少 DLL,这可能给了我“找不到文件”。例外。非常感谢!【参考方案3】:

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

【讨论】:

以上是关于SharePoint 中的 Silverlight WebPart的主要内容,如果未能解决你的问题,请参考以下文章

Sharepoint:WebPart 和 silverlight 控件之间的通信

Sharepoint 2010 silverlight web 部件不可用

Sharepoint 2010 和 Silverlight Web 部件 SL 版本

安全模型 - 调用 WCF 服务的 SharePoint 2010 Silverlight Web 部件

Sharepoint 应用程序文件结构?

Silverlight 添加到 List<T> 抛出未设置为对象实例的对象引用