在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)相关推荐

  1. [Sharepoint2007对象模型]第二回:Web应用程序服务(SPWebService)

    在上一回中说了Sharepoint中的服务器场,在服务器场中最重要的一个服务就是Web应用程序服务.我们自己的Sharepoint网站都是借助于这个服务才能正常运行的,也就是说所有的Sharepoin ...

  2. Python 项目实践三(Web应用程序)第一篇

    一 Djangao入门 当今的网站实际上都是富应用程序(rich application),就像成熟的桌面应用程序一样.Python提供了一组开发Web应用程序的卓越工具.在本章中,你将学习如何使用D ...

  3. Python 项目实践三(Web应用程序)第四篇

    接着上节继续学习,本章将建立用户账户 Web应用程序的核心是让任何用户都能够注册账户并能够使用它,不管用户身处何方.在本章中,你将创建一些表单,让用户能够添加主题和条目,以及编辑既有的条目.你还将学习 ...

  4. 常见的三种Web应用程序:SWA, PWA 和Jamstack

    今天给大家介绍几种常见的web 应用程序. 静态应用程序(SWA) 静态Web应用程序是任何可以直接交付到最终用户浏览器的Web应用程序,而不需要对HTML.CSS或JavaScript内容进行任何服 ...

  5. python项目实践_Python 项目实践三(Web应用程序)第二篇

    接着上节的继续学习,使用Django创建网页的过程通常分三个阶段:定义URL.编写视图和编写模板.首先,你必须定义URL模式,每个URL都被映射到特定的视图--视图函数获取并处理网页所需的数据.视图函 ...

  6. 第一章 Web应用程序开发基础

    一.HTTP协议工作机制 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议.它是一种主流B/S架构中应用的通信 ...

  7. [Sharepoint2007对象模型]第一回:服务器场(SPFarm)

    Sharepoint是微软一个很重要的服务器产品,它可以方便的创建和维护一个网站,在Sharepoint的管理中心提供了很强大的管理工具.同时为了更加灵活的后期定制和开发,Sharepoint提供了完 ...

  8. java web mvc_构建Java Web应用程序时遵循MVC的三个步骤

    java web mvc 第1步 做 始终通过servlet / action bean处理URL(POST表单,单击链接等),而不是通过JSP处理 为什么 ActionBeans(无论某些框架调用那 ...

  9. 构建Java Web应用程序时遵循MVC的三个步骤

    步骤1 做 始终通过servlet / action bean处理URL(POST表单,单击链接等),而不是通过JSP处理 为什么 ActionBeans(无论某些框架调用那些类),而servlet很 ...

最新文章

  1. 海康大华RTSP格式
  2. 2017西安交大ACM小学期数论 [水题]
  3. js获取用户当前所在城市(ip)
  4. C语言查看文件fp指针位置
  5. ##6.2 Neutron计算节点-- openstack pike
  6. es6 next()方法的参数
  7. Chrome 将不再允许 https:// 页面加载 HTTP 资源
  8. bm算法java,图解 BM 算法
  9. processing一个作品_当你触摸到一束光| 交互灯光装置课程学员作品回顾
  10. 【Ruby】【改gem源镜像】【Win10 + Jruby-9.1.2.0 + Rails 5.1.3 + gem 2.6.4 】
  11. 2022年第五届中青杯赛题浅评
  12. html5视频制作,iH5最专业的H5制作工具
  13. python名人问题_Python 思考录 练习01
  14. PAT 1009 蜜蜂寻路
  15. win10 文件图标变白的解决方法
  16. 2020-07-03:有1亿个数字,其中有2个是重复的,快速找到它,时间和空间要最优
  17. vue 权限管理 动态路由(6)
  18. 多少岁才能评中级工程师,需要工作业绩吗,需要几个工作业绩?
  19. 对于代码复现学习的一些理解||计算机研究生学习笔记||经验分享||深度学习||pytorch||不定期长期更新
  20. NX启动未能注册按钮事件

热门文章

  1. Mac远程连接服务器
  2. ELF 动态链接 so的动态符号表(.dynsym)
  3. 挺好用的Markdown写法
  4. WPF指南之XAML概述
  5. nlp中的经典深度学习模型(一)
  6. [Leetcode][第329题][JAVA][矩阵中的最长递增路径][DFS][拓扑排序]
  7. [剑指offer][JAVA]面试题第[18]题[删除链表的节点]
  8. 1.6解不等式 1.6.1 平方根不等式
  9. 如何去掉文章里的非关键词c++_B2B/B2C网站:文章标题如何写才能促进搜索排名...
  10. java classpath bat_tomcat启动批处理——setclasspath.bat | 学步园