受到continuous delivery 觀念的灌輸,新的專案都盡量朝向能自動化的建置及部署

因為目前使用TFS 2010 ,專案都是web system,這部分倒是網路上有不少文章可以參考,還算容易建立

只是完成專案的部分之後,接下來就會去想如何讓系統的環境也能自動化的建立,首先想解決的就是IIS的設定

一般來說,我想應該跟大家的作法差不多,就是會有一份文件,描述當要新建系統時,要如何設定IIS。當要轉換環境或是要建立一個新的測試環境時,就照著這份文件完成

當然會遇到的問題也應該多數人差不多

1. 文件未更新,實際環境與文件記錄不相同

2.人為設定可能出錯或遺漏,出問題時又要逐步檢查

因此 讓設定IIS的動作自動化,將這自動建置script本身就視為是一份文件

在說明之前,我的環境是windows server 2008 R2,打算在預設web site (default web site) 下建立一個應用程式,程式碼存放路徑d:\Webapp\MyWeb

1. 建立存放code的 folder

01 #將code存放在d:\WebApp\MyWebSite,並判斷folder是否存在
02    #設定給network service 權限
03
04    $folderPath = "d:\WebApp\MyWeb"
05    $existPath = Test-Path $folderPath
06
07    if($existPath -eq $false) {
08        New-Item $folderPath -ItemType Directory
09
10        $acl = Get-Acl $folderPath
11        $ar = New-Object System.Security.AccessControl.FileSystemAccessRule("network service", "FullControl","ContainerInherit, ObjectInherit", "None",  "Allow")
12        $acl.SetAccessRule($ar)
13        Set-Acl $acl -path $folderpath
14    }

2. 建立Application Pool

01    $appPoolName = "My AppPool"
02    $app = "iis:\AppPools\" + $appPoolName
03    $existAppPool = Test-Path $app
04
05    if($existAppPool -eq $false) {
06        $appPool = New-Item $appPoolName
07
08        #Identity --> Network service
09        $appPool.ProcessModel.IdentityType = 2
10
11        #.net 4
12        $appPool.managedRuntimeVersion = "v4.0"
13
14        #PopelineMode
15        $appPool.ManagedPipelineMode = 0
16
17        #start mode
18        $appPool.startMode="AlwaysRunning"
19
20
21        #save property
22        $appPool | Set-Item
23    }

這邊要說明一下,這裡用到WebAdministration 模組,因此上述的script執行前,要先import-module WebAdministration

可以參考一下保哥的文章 如何才能在 IIS 7.5 使用 Windows PowerShell Snap-In 功能

$appPool.ProcessModel.IdentityType = 2 指的是Identity用network service,其他意義如下

0 >  Local Service

1 >  Local System

2 > Network Service

3 > User

4 > ApplicationPoolIdentity

$appPool.managedRuntimeVersion = "v4.0" 指用.net framework 4.0

$appPool.ManagedPipelineMode = 0 指是用 Integrated pipeline mode,1則是class pipeline mode

有些設定的調整,因為沒用到就沒列出來

3. 建立application同樣的語法套用,也可以建立web site

01    $appSitePath = "iis:\sites\Default Web Site\MyWebSite"
02    $existWeb = Test-Path $appSitePath
03
04    if($existWeb -eq $false) {
05        $folderPath = $folderPath = "d:\WebApp\MyWeb"
06        $appPoolName = "My AppPool"
07
08        New-Item $appSitePath -physicalpath $folderPath -type Application
09
10        #設定剛剛建立的application pool
11        Set-ItemProperty $appSitePath -name applicationpool -value $appPoolName
12
13        $appSiteShortName = $appSitePath.ToLower().Replace("iis:\sites\", "").Replace("\", "/")
14
15        #開啟window authentication
16        Set-WebConfigurationProperty -filter /system.webServer/security/authentication/windowsAuthentication -name enabled -value true -PSPath IIS:\ -location $appSiteShortName
17
18        #關閉anonymous authentication
19        Set-WebConfigurationProperty -filter /system.webServer/security/authentication/anonymousAuthentication -name enabled -value false -PSPath IIS:\ -location $appSiteShortName
20
21        #移除預設的首頁並重新設定
22        Remove-WebConfigurationproperty -filter /system.webserver/defaultdocument -name files -PSPath IIS:\ -location $appSiteShortName
23        Add-WebConfiguration -filter /system.webserver/defaultdocument/files -atIndex 0 -value @{value = "default.aspx"} -PSPath IIS:\ -location $appSiteShortName
24    }

將上述分開的script 整理重構成一份powershell檔案即可成為一份自動化建置IIS  web site 的文件

原文链接:http://www.dotblogs.com.tw/maev85/archive/2012/01/18/66433.aspx

转载于:https://www.cnblogs.com/ocean2000/archive/2012/12/05/PowerShell.html

(Asp.Net)转载-用Powershell 建立IIS web site相关推荐

  1. IIS Web 服务器/ASP.NET 运行原理基本知识概念整理

    前言: 记录 IIS 相关的笔记还是从公司笔试考核题开始的,问 Application Pool 与 AppDomain 的区别? 促使我对进程池进了知识的学习,所以记录一下学习的笔记. 我们知道现在 ...

  2. 【转载】各版本IIS下ASP.net请求处理过程(3)

    IIS  7 应用程序池的 托管管道模式  集成模式 而 IIS 7 完全整合 .NET 之后,架构的处理顺序有了很大的不同(如下图),最主要的原因就是 ASP.NET 从 IIS 插件(ISAPI ...

  3. ASP.NET 5 入门(1) - 建立和开发ASP.NET 5 项目

    ASP.NET入门(1) - 建立和开发ASP.NET 5 项目 ASP.NET 5 理解和入门 使用自定义配置文件 建立项目 首先,目前只有VS 2015支持开发最新的ASP.NET 5 程序,所以 ...

  4. ASP Win7旗舰版中的IIS配置asp.net的运行环境

    以前弄过好多次,都没有成功,昨天晚上不知怎么地就成功了,借用我同学的一句话,这叫"灵光一闪",废话不多说了,这个成功是有图有视频有真相地哈! 这篇博文发表都三个月了,我自认为算是很 ...

  5. ASP.NET 4 和 Visual Studio 2010 Web 开发概述

    声明:本文是ASP.NET 白皮书 ASP.NET 4 and Visual Studio 2010 Web Development Overview 的阅读摘要,只是本人的学习记录,并非完整翻译,仅 ...

  6. [转]Windows IIS WEB服务器配置安全规范

    本文档列举出一些建议和最佳做法,以保证 Web 上运行 Microsoft Windows 2000 和 Internet Information Services (IIS) 5 的服务器的安全.这 ...

  7. IIS Web 服务器的权限设置

    IIS Web 服务器的权限设置有两个地方,一个是 NTFS 文件系统本身的权限设置,另一个是 IIS 下 网站->默认网站->右击属性->虚拟目录 面板上.这两个地方是密切相关的. ...

  8. ASP.NET 创建、发布、使用Web服务的详细方法

    一.创建Web服务 1.首先,打开VS(本例以VS2017为例).创建一个ASP.NET Web 应用程序,位置和名称自定义,本例我把这个项目创建在桌面,名字叫helloWho.然后点击[确定],在弹 ...

  9. WEB应用程序及IIS WEB 服务器介绍

    I.         了解 Web 应用程序 1.      概述 Web 应用程序是一个包含多个页的 Web 站点,这些页可能是静态的 html 网页,也可能是动态的网页(如: ASP.NET . ...

最新文章

  1. ArrayList源码学习
  2. 苹果和Siri的七年之痒:Siri的落寞之路
  3. Windows_API_函数 参考大全
  4. ES5总结1:数组Array新特性最全最精简的详解
  5. 卡顿人生,如何拯救?
  6. 卸载centos7自带mysql_centos7完全卸载mysql
  7. 通用mapper版+SpringBoot+MyBatis框架+mysql数据库的整合
  8. linux获取字符格式化,Linux 格式化字符串漏洞利用
  9. sun.java2d.fontpath,java起用默认浏览器
  10. 2022互联网大厂新年礼盒:腾讯向善、阿里家书、百度箱包抢镜!
  11. 谷歌浏览器添加插件——json
  12. sql时间转换时分秒_sql秒转换成时分秒格式
  13. Hive大总结!!!
  14. Python中zip函数的用法
  15. VR/AR工作原理、目前存在的技术问题
  16. Matlab-函数拟合
  17. PLSQL开发笔记和小结
  18. 差动直流放大电路仿真 -- 单端输入,双端输入,共模,差模(附Multisim)
  19. 要怎么通过PHP发布微博动态:附代码详解
  20. 小红书文案怎么编辑制作?小红书上的文案怎么做的?

热门文章

  1. C/S架构应用程序开发培训笔记
  2. 基于VLC的播放器开发
  3. [15] 星星(Star)图形的生成算法
  4. [转]Visual Assist X设置
  5. ASP.NET Session 使用报告(转贴)
  6. bmp类型转成Halcon的Hobject类型
  7. python基础实验报告答案_Python基础(上)实验报告
  8. java map key是否存在_java中如何判断map集合中是否存在key
  9. b是python文件二进制打开_如何在Python中打开和显示原始二进制数据?
  10. 大江论坛服务器维护,Kangle“多节点服务器扩展”功能的详细介绍