將你的Asp.NET應用程式嵌入到SharePoint

來源:互聯網
上載者:User

為什麼要將Asp.net應用程式嵌入到SharePoint?這個我們不討論!我們將要討論的是如何將Asp.net應用程式嵌入到SharePoint,以及其中可能會遇到的問題。

本文開始:

    我們這裡是建立了一個Web應用程式裡面有一個Demo.aspx頁,代碼如下:

namespace WebInMOSS

{

public partial class _Demo: System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

Response.Write("Web Can In Moss");

 

}

 

 

}

}

將此程式編譯,產生一個WebInMOSS.dll檔案,將此dll拷貝到網站目錄下bin檔案夾,增加節點:

<SafeControl Assembly="WebInMOSS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Namespace="WebInMOSS" TypeName="*" Safe="True" />

然後將Demo.aspx頁面放入MOSS中。放入方式你可以選擇使用SPD,或者直接上傳文件庫。我們這裡放入"Pages"中。

在MOSS中瀏覽pages/Demo.aspx,

是否刪除autoeventwireup就可以了呢?的確,在刪除AutoEventWireup="true"後

頁面顯示Web Can In Moss,證明執行成功。

增加web應用程式複雜度,在Demo.aspx放入一個button ,其事件如下:

    protected void Button3_Click(object sender, EventArgs e)

{

SPSite siteCollection = new SPSite("http://xuwei:8080");

 

SPWeb site = siteCollection.OpenWeb("/Docs/");

 

SPList list = site.Lists["通知"];

 

SPListItemCollection items = list.Items;

 

foreach (SPListItem item in items)

{

 

Response.Write("<br/>");

Response.Write(item["Title"].ToString());

 

 

}

 

 

}

在VS2005中調試得出結果(各位看客請先忽略write session和read session 2個button):

將重新編譯後的程式dll,Demo.aspx按前面方式放入MOSS中。重新瀏覽

此時又出現Onclick事件不能使用,如何是好?我們必須啟動MOSS的安全模式才能執行伺服器端事件。操作如下:

我們找到Web.config 檔案的<SharePoint>節點,在 <PageParserPaths> </PageParserPaths>

節點下增加一個虛擬路徑 <PageParserPath VirtualPath="/*" CompilationMode="Always" AllowServerSideScript="true" IncludeSubFolders="true" />

聲明此網站下所有檔案允許伺服器端事件,當然你也可以制定虛擬目錄是那個檔案夾,但是這個值 必須以 ~/ 或 / 開頭,並且必須以檔案名稱或 * 結尾。

儲存Demo.aspx後瀏覽頁面,能夠正常顯示,點擊listobject button(各位看客請先忽略write session和read session 2個button),OK,正常執行顯示了!

再次增加web應用程式複雜度,加入Session,(在MOSS開發中不管採取那種方式,只要是和自己的程式相整合,總會碰到Session的問題)。

代碼如下:

    protected void Button1_Click(object sender, EventArgs e)

{

Session["Count"] = "1";

}

 

protected void Button2_Click(object sender, EventArgs e)

{

if (Session["Count"] != null)

{

Response.Write("<br><font color=red>"+Session["Count"].ToString()+"</font>");

}

}

編譯儲存後再次瀏覽頁面,點擊listobject button能夠正常顯示結果,可是當點擊 Write Session時,出現

這個提示出現得夠霸氣!天曉得是什麼意外錯誤!我試圖修改<customErrors mode="Off" />讓MOSS顯示出錯誤資訊,但是失敗。尋找Log檔案也沒有

發現什麼蹤跡,還好 一開始就預計到Session可能會出現問題,檢查Web.config發現

<pages enableSessionState="false" enableViewState="true" enableViewStateMac="true" validateRequest="false" pageParserFilterType="Microsoft.SharePoint.ApplicationRuntime.SPPageParserFilter, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" asyncTimeout="7">

呵呵,Session預設處於關閉狀態,當然無法正常執行。將其設定為 true後儲存。瀏覽demo.aspx頁面,點擊write session 和read Session,能夠正常執行。

總算一些重要的問題能夠解決了!如果再遇到其他問題,我們繼續討論!

    

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.