2009-02-24 138 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」)。