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