探討: 利用Community server 2.1整合原本ASP.Net

Sunday, 5 November 2006 19:08 by admin

參考

http://tod1d.net/blogs/tech/pages/Running-ASP.NET-applications-under-Community-Server.aspx

 

總結

以下步驟將告訴您如何將原本的 ASP.Net 頁面整合到 Community Server 

 

步驟1: 安裝與設定Community Server

在整合前,您必須先安裝一套Community Server,並且選擇相同的.Net Framework版本安裝,例如原本的網頁是用ASP.Net 1.1 就要安裝 Community server for ASP.Net 1.1,如果還沒下載,可以到官方網站下載區,下載Web Install版本

 

下載後將檔案解壓縮並上傳到伺服器上的一個目錄,例如 wwwroot\cs21 ,並且建立一個虛擬目錄指到此目錄的web下面,例如 wwwroot\cs21\web ,上傳後請利用瀏覽器開啟線上安裝程式設定與建立資料庫,線上安裝網址 http://yourdomain/cs/installer/default.aspx

 

※安裝於根目錄也可以,但推薦安裝於虛擬目錄

 

步驟2: 複製必要的檔案到您的網頁專案

CS安裝完成後即可開始準備整合到您自己的專案,首先開啟您的Visual Studio.Net 2003 (ASP.Net 1.1) or 2005 (ASP.Net 2.0) 複製並加入以下參考到 bin 目錄

 

ASP.Net 1.1 

  • CommunityServer.MemberRole.dll
  • CommunityServer.Components.dll
  • MemberRole.dll
  • CommunityServer.Reader.dll (此檔案應該為非必要,後續解說)
  • CommunityServer.SqlDataProvider.dll

 ASP.Net 2.0

  • CommunityServer.ASPNet20MemberRole.dll
  • CommunityServer.Components.dll
  • CommunityServer.Reader.dll (此檔案應該為非必要,後續解說)
  • CommunityServer.SqlDataProvider.dll

當然複製越多的 dll 您就可以有越多功能,但會造成伺服器更多的負擔,並且通常您應該是不會用到這些功能,另外您還要複製

  • communityserver.config
  • SiteUrls.config
  • 與 languages 目錄

完成後您還要整合 web.config ,建議把 cs 目錄的 web.config 複製到您的專案,然後再加入您需要修改的部分

 

步驟3: CS功能簡化

大部分CS的功能都會在 cs 目錄下執行,應該用不到在您自己的專案下執行,所以關掉大部分用不到的CS功能來減少伺服器負載與增加效率

首先開啟 communityserver.config,找到 "<Jobs minutes" ,這區塊都是CS的自動執行服務,都用不到了,再來找到<CSModules> ,這些是宣告CS有哪些模組,這僅需要留下基本的模組,其他的大都不必要

<CSModules>
<add name = "InkModule" type = "CommunityServer.Components.InkModule, CommunityServer.Components" />
<add name = "CSMembershipRulesModule" type = "CommunityServer.Components.CSMembershipRulesModule, CommunityServer.Components" />
<add name = "CSValidationModule" type = "CommunityServer.Components.CSValidationModule, CommunityServer.Components" />
<add name = "CSCatastrophicExceptionModule" type = "CommunityServer.Components.CSCatastrophicExceptionModule, CommunityServer.Components" />
<add name = "CSExceptionModule" type = "CommunityServer.Components.CSExceptionModule, CommunityServer.Components" />
<add name = "UserLastVisit" type = "CommunityServer.Components.UserLastVisitModule, CommunityServer.Components" />
   
<add name = "FullyQualifiedUrlModule" type = "CommunityServer.Components.FullyQualifiedUrlModule, CommunityServer.Components" />
<add name = "AuditDeletedPostContentModule" type = "CommunityServer.Components.AuditDeletedPostContentModule, CommunityServer.Components" />           
</CSModules>

 

步驟4: 將程式碼加入您的程式

到此已經可以把 CS 整合到您的網頁專案,試看看在您的首頁加入以下程式碼

   18     protected void Page_Load(object sender, EventArgs e)
   19     {
   20       CommunityServer.Components.User currentUser =
   21         CommunityServer.Components.CSContext.Current.User;
   22       Label1.Text = currentUser.Username;
   23     }

完成後編譯如果動作正常即可發現使用者名稱顯示在 label1 的位置上,另外要注意的就是完成後,您的專案就變成了 表單 認證 ( <authentication mode="Forms" /> )

 

步驟5: 確定原CS網頁是否正常工作

由於您複製了 web.config 到根目錄,會造成您原本 cs 有些衝突,您可以還要修改一下 cs 專案下的 web.config ,把衝突的地方刪除 

 

恭喜你,完成了整合,您可以參考一些CS程式碼來自訂一些功能到您的網頁上,例如自己設計登入表單或介面到您的網頁專案上

 

Pingbacks and trackbacks (1)+