[Sharepoint2007对象模型]第三回:Web应用程序(SPWebApplication)
在Sharepoint的管理中心創建一個網站的順序大致如下:創建Web應用程序-〉創建網站集。所以Web應用程序是網站的一個基礎,在一個Web應用程序下可以創建多個網站,本回就主要來介紹Web應用程序這個對象模型以及如何使用對象模型來創建一個Web應用程序。
首先來看看Web應用程序主要包含哪些內容:
1、網站集,指的是這個Web應用程序包含哪些網站,我們可以通過Sharepoint的管理中心看到:
對應的對象模型為:SPSite
????????????TreeNode?nodeSite?=?nodeWeb.Nodes.Add("網站集");
????????????foreach?(SPSite?site?in?application.Sites)
????????????{
????????????????nodeSite.Nodes.Add(site.Url);
????????????}
2、網站功能集,指的是這個web應用程序下包含哪些Feature,Feature是Sharepoint中一個比較重要的功能,可以參看我之前的文章,它對應的對象模型是:SPFeature
????????????TreeNode?nodeFeature?=?nodeWeb.Nodes.Add("網站功能集");
????????????foreach?(SPFeature?feature?in?application.Features)
????????????{
????????????????nodeFeature.Nodes.Add(GetFeatureName(feature.Definition));
????????????}
3、作業,指的是這個web應用程序有哪些計時器作業,它的對象模型是:SPRunningJob
????????????TreeNode?nodeRunningJob?=?nodeWeb.Nodes.Add("作業");
????????????foreach?(SPRunningJob?job?in?application.RunningJobs)
????????????{
????????????????nodeRunningJob.Nodes.Add(job.JobDefinitionTitle);
????????????}
在Sharepoint的管理中心可以看到:
4、作業定義,是包含作業的一些定義信息,對應的對象模型為:SPJobDefinition
????????????TreeNode?nodeJobDef?=?nodeWeb.Nodes.Add("作業定義");
????????????foreach?(SPJobDefinition?jobDef?in?application.JobDefinitions)
????????????{
????????????????nodeJobDef.Nodes.Add(jobDef.DisplayName);
????????????}
執行后的截圖如下:
?
創建Web應用程序
在Sharepoint的管理中心可以通過界面創建Web應用程序,在界面上我們可以看到創建時主要需要如下屬性:IIS 網站、安全性配置、負載平衡的 URL、應用程序池、數據庫名稱和驗證。通過對象模型同樣可以實現以上操作
首先需要取得創建Web應用程序的創建類
SPWebApplicationBuilder?webAppBlder?=?new?SPWebApplicationBuilder(CurrentFarm);
設置IIS站點屬性:
????????????webAppBlder.Id?=?Guid.NewGuid();
????????????webAppBlder.Port?=?9002;
????????????webAppBlder.RootDirectory?=?new?System.IO.DirectoryInfo(@"C:\Inetpub\wwwroot\wss\VirtualDirectories\9002");
這里我們指定創建的web站點的端口為9002
設置應用程序池的屬性:
?
????????????webAppBlder.ApplicationPoolId?=?"TestApp?Pool-9012";
????????????webAppBlder.IdentityType?=?IdentityType.SpecificUser;
????????????webAppBlder.ApplicationPoolUsername?=?@"****\****";
????????????SecureString?appPoolPwd?=?new?SecureString();
????????????appPoolPwd.AppendChar('*');
????????????appPoolPwd.AppendChar('*');
????????????appPoolPwd.AppendChar('*');
????????????appPoolPwd.MakeReadOnly();
????????????webAppBlder.ApplicationPoolPassword?=?appPoolPwd;
主要是指定IIS應用程序池的名稱和訪問用戶名、密碼等屬性
web應用程序的安全性設置:
????????????webAppBlder.UseNTLMExclusively?=?true;?
????????????webAppBlder.AllowAnonymousAccess?=?false;
????????????webAppBlder.UseSecureSocketsLayer?=?false;
在這里設置為使用NTLM驗證,在Sharepoint中使用了NTLM和Kerberos兩種驗證方式,Kerberos相對來說比較復雜一點的。不使用SSL,不允許匿名訪問
設置負載平衡的 URL:
????????????webAppBlder.DefaultZoneUri?=?new?Uri("http://*****:9002");
設置web應用程序的數據庫屬性:
????????????webAppBlder.CreateNewDatabase?=?true;
????????????webAppBlder.DatabaseServer?=?"*****";
????????????webAppBlder.DatabaseName?=?"TestApp9002";
????????????webAppBlder.DatabaseUsername?=?string.Empty;
這里數據庫用戶名設為空值,表示使用Windows集成認證的方式
創建Web應用程序:
SPWebApplication?webApp?=?webAppBlder.Create();
實際的在Sharepoint的服務器場中創建一個web應用程序
設置Web應用程序的常規屬性:
???????????webApp.DefaultTimeZone?=?45;
????????????webApp.Name?=?"TestApp-9002";
????????????webApp.Update();
這里的時區45表示的是GMT+08:00北京時區
這里的設置主要是模擬sharepoint管理中心里<Web應用程序常規設置>中的配置
創建 IIS Web 應用程序和應用程序池:
webApp.Provision();
通過以上步驟就可以創建一個標準的Web應用程序了,當然現在創建的Web應用程序還是一個空殼子,沒有實質內容。在下一回中我會重點介紹網站集(SPSite)這個對象模型,在Web應用程序里創建網站集來實現Web網站的訪問。
總結
以上是生活随笔為你收集整理的[Sharepoint2007对象模型]第三回:Web应用程序(SPWebApplication)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.Net请求处理机制初步探索之旅
- 下一篇: 第六节:深入研究Task实例方法Cont