

AppCmd.exe工具所在目录 C:\windows\sytstem32\inetsrv\目录下
appcmd语法:
appcmd.exe <命令> <对象类型> <标示符> <参数1:值1 ....>
常用命令
命令 | 举例描述 | 例子 |
list | 列出应用程序池 | 例:appcmd.exe list app |
set | 配置应用程序池 |
例:appcmd.exe set app "default site" /applicationpool:"X" |
add | 添加新应用程序池 | 例:appcmd.exe add apppool /name:"XXX" |
delete | 删除应用程序池 | 例:appcmd.exe delete apppool /apppool.name:"XXX" |
start | 启动应用程序池 | 例:appcmd.exe start apppool /apppool.name:"XXX" |
stop | 停止应用程序池 | 例:appcmd.exe stop apppool /apppool.name:"XXX" |
recycle | 回收应用程序池 | 例:appcmd.exe recycle apppool xxx |
常用对象
对象名称 | 描述 |
site | 管理虚拟网站 |
app | 管理应用程序 |
vdir | 管理虚拟目录 |
appool | 管理应用程序池 |
config | 挂历通用配置文件 |
wp | 挂历工作进程 |
request | 管理http请求 |
module | 管理服务器模块 |
backup | 管理服务器配置备份 |
trace | 管理失效请求跟踪日志 |
常用参数
/? | 显示上下文相关帮助消息 |
/text<:value> |
以文本格式(默认)生成输出。 /text:* 在详细信息视图中显示所有对象属性 /text:<attribute>显示每个对象的指定特性的值 |
/xml | 以XML格式生成输出,使用此参数生成的输出可发送至以/in模式运行的其他命令 |
/in or - | 自标准输入读取和操作XML输入。使用此参数可操作运行于/XML模式的其他命令生成的输入 |
/comfig<:*> |
显示所显示的对象配置。/config:*还包括继承的配置。 |
/metadata | 在显示配置时显示配置的元数据 |
/commit |
设置用于保存配置更改的配置路径。 可以指定具体的配置路径、"site"、"app"、"parent"或"url" 以保存到该命令正在编辑的路径的适当部分 也可以设置为对应的配置级别的"apphost"、"webroot"或"machine" |
/debug | 显示命令执行的调式信息 |
可以使用"!"转译常用参数同名的参数
例:"/!debug:value" 设置一个名为"debug"的配置属性
站点的备份与恢复
还原命名也可以写成 appcmd.exe restore backup test1 /stop:false(恢复备份时不会重启IIS)
特别提醒:通过backup实现的备份是全站点的配置文件的备份,不会备份站点代码。
使用restore恢复备份的时候会覆盖所有站点,即使刚添加的站点也会覆盖没的。恢复备份时先备份好!
单个站点迁移
有的时候我们要迁移单个站点怎么操作呢?
那我们就要使用到参数/XML /IN
官方链接:http://www.microsoftpro.nl/2011/01/27/exporting-and-importing-sites-and-app-pools-from-iis-7-and-7-5/
如果要搬移IIS上的数据到其他的服务器,需要导出应用池和网站:
1. 导出应用池
2. 导出网站配置
3.导入应用池
4. 导入网站配置
XXX为站点名或者应用池名。如果XXX不填写,会把所有的站点或应用池全部导出来。
下面来测试下:
首先我们把站点和应用池的配置文件先导出来
然后删除站点和应用池(有条件可以迁移到另外一台机器上测试)
然后我们在把配置文件导出进去看看站点是否还原
然后我们看下站点是否还原,并测试下是否和原来一样
和原来站点一样,而且不会覆盖原来存在的站点。
在这里有一点一定要强调一下。在从其他IIS服务器导出站点时必须更改ID,如何导入的站点自带的ID已经在服务器上存在,会导入失败并报错。
使用appcmd建立虚拟站点
appcmd.exe add SITE [标识符] [-参数1:值1 ...]
使用指定的设置创建新的虚拟站点。至少,必须提供站点名称和 ID。ID不能重复
支持的参数:
/name (必需) 站点名称
/id 站点 ID
/bindings 绑定列表 “http://domain:port,...”好记格式或“protocol/bindingInformation,...”
/physicalPath 如果指定,将导致为该站点创建包含指向指定路径的根虚拟目录的根应用程序。如果忽略,将创建一个没有根应用程序的站点,并且该站点在创建根应用程序之前将无法启动。
例子:
使用指定路径绑定创建一个新站点“test1”,以便在端口 80 上侦听对 www.domain.com 的 http 请求。ID为3,虚拟目录:e:\test1
如何要额外添加绑定列表
站点建好了还要建立相应的应用池
appcmd add apppool /name:test1 /managedRuntimeVersion:v2.0 /managedPipelineMode:Classic
/managedRuntimeVersion 是.net Framework的版本 如:v1.0 v1.1或v2.0等
/managedPielineMode 托管管道模式:Classic经典模式,Integrated集成模式
把应用池test1绑定到站点test1上
这样站点就能正常访问,如果需要配置其他的参数,可以参考下文。
配置虚拟站点
APPCMD set SITE [标识符] [-参数1:值1 ...]
允许设置指定虚拟站点的属性。必须提供准确的站点标识符,并且必须将该标识符解析为现有站点。
支持的参数:
identifier (必需) 要修改的站点的站点名称或 url
/site.name 要修改的站点的站点名称或 url (与标识符相同)
/bindings 绑定列表
其他参数
-name 名称
-id ID标识
-serverAutoStart 是否自动启动
-bindings.[protocol='string',bindingInformation='string'].p
-bindings.[protocol='string',bindingInformation='string'].b
-limits.maxBandwidth
-limits.maxConnections
-limits.connectionTimeout
-logFile.logExtFileFlags
-logFile.customLogPluginClsid
-logFile.logFormat
-logFile.directory
-logFile.period
-logFile.truncateSize
-logFile.localTimeRollover
-logFile.enabled
-traceFailedRequestsLogging.enabled
-traceFailedRequestsLogging.directory
-traceFailedRequestsLogging.maxLogFiles
-traceFailedRequestsLogging.maxLogFileSizeKB
-traceFailedRequestsLogging.customActionsEnabled
-applicationDefaults.path
-applicationDefaults.applicationPool
-applicationDefaults.enabledProtocols
-virtualDirectoryDefaults.path
-virtualDirectoryDefaults.physicalPath 网站的物理路径
-virtualDirectoryDefaults.userName 物理路径凭据的账户
-virtualDirectoryDefaults.password 物理路径凭据的密码
-virtualDirectoryDefaults.logonMethod
-virtualDirectoryDefaults.allowSubDirConfig
-[path='string'].path
-[path='string'].applicationPool
-[path='string'].enabledProtocols
-[path='string'].virtualDirectoryDefaults.path
-[path='string'].virtualDirectoryDefaults.physicalPath
-[path='string'].virtualDirectoryDefaults.userName
-[path='string'].virtualDirectoryDefaults.password
-[path='string'].virtualDirectoryDefaults.logonMethod
-[path='string'].virtualDirectoryDefaults.allowSubDirConfig
-[path='string'].[path='string'].path
-[path='string'].[path='string'].physicalPath
-[path='string'].[path='string'].userName
-[path='string'].[path='string'].password
-[path='string'].[path='string'].logonMethod
-[path='string'].[path='string'].allowSubDirConfig
含义如下:
以下是每个参数的含义和用途的详细说明:
站点配置参数
-
-serverAutoStart
:-
含义:设置站点是否自动启动。
-
用途:如果设置为
true
,IIS启动时会自动启动该站点。
-
-
-bindings.[protocol='string',bindingInformation='string'].protocol
:-
含义:设置站点的绑定协议(如
http
或https
)。 -
用途:指定站点使用的协议类型。
-
-
-bindings.[protocol='string',bindingInformation='string'].bindingInformation
:-
含义:设置站点的绑定信息。
-
用途:格式为
IP地址:端口:主机名
,例如*:80:www.example.com
。
-
-
-limits.maxBandwidth
:-
含义:设置站点的最大带宽限制。
-
用途:单位为字节/秒。
-
-
-limits.maxConnections
:-
含义:设置站点的最大连接数。
-
用途:限制同时连接到站点的客户端数量。
-
-
-limits.connectionTimeout
:-
含义:设置站点的连接超时时间。
-
用途:单位为秒。
-
日志配置参数
-
-logFile.logExtFileFlags
:-
含义:设置日志文件的扩展标志。
-
用途:例如,记录日期、时间、客户端IP等。
-
-
-logFile.customLogPluginClsid
:-
含义:设置自定义日志插件的CLSID。
-
用途:用于扩展日志功能。
-
-
-logFile.logFormat
:-
含义:设置日志文件的格式。
-
用途:例如,
W3C
、IIS
或NCSA
。
-
-
-logFile.directory
:-
含义:设置日志文件的存储目录。
-
用途:指定日志文件的路径。
-
-
-logFile.period
:-
含义:设置日志文件的滚动周期。
-
用途:例如,
Daily
、Weekly
或Monthly
。
-
-
-logFile.truncateSize
:-
含义:设置日志文件的截断大小。
-
用途:单位为字节。
-
-
-logFile.localTimeRollover
:-
含义:设置日志文件是否使用本地时间滚动。
-
用途:如果设置为
true
,日志文件将根据本地时间滚动。
-
-
-logFile.enabled
:-
含义:设置是否启用日志记录。
-
用途:如果设置为
true
,站点将记录日志。
-
失败请求跟踪配置参数
-
-traceFailedRequestsLogging.enabled
:-
含义:设置是否启用失败请求跟踪。
-
用途:如果设置为
true
,站点将记录失败请求。
-
-
-traceFailedRequestsLogging.directory
:-
含义:设置失败请求跟踪日志的存储目录。
-
用途:指定日志文件的路径。
-
-
-traceFailedRequestsLogging.maxLogFiles
:-
含义:设置失败请求跟踪日志的最大文件数。
-
用途:限制日志文件的数量。
-
-
-traceFailedRequestsLogging.maxLogFileSizeKB
:-
含义:设置失败请求跟踪日志的最大文件大小。
-
用途:单位为KB。
-
-
-traceFailedRequestsLogging.customActionsEnabled
:-
含义:设置是否启用自定义操作。
-
用途:如果设置为
true
,可以自定义失败请求的处理逻辑。
-
应用程序默认配置参数
-
-applicationDefaults.path
:-
含义:设置应用程序的默认路径。
-
用途:指定应用程序的根路径。
-
-
-applicationDefaults.applicationPool
:-
含义:设置应用程序的默认应用程序池。
-
用途:指定应用程序池的名称。
-
-
-applicationDefaults.enabledProtocols
:-
含义:设置应用程序的默认启用协议。
-
用途:例如,
http
或https
。
-
虚拟目录默认配置参数
-
-virtualDirectoryDefaults.path
:-
含义:设置虚拟目录的默认路径。
-
用途:指定虚拟目录的根路径。
-
-
-virtualDirectoryDefaults.physicalPath
:-
含义:设置虚拟目录的默认物理路径。
-
用途:指定虚拟目录的文件系统路径。
-
-
-virtualDirectoryDefaults.userName
:-
含义:设置虚拟目录的默认用户名。
-
用途:指定访问虚拟目录的用户名。
-
-
-virtualDirectoryDefaults.password
:-
含义:设置虚拟目录的默认密码。
-
用途:指定访问虚拟目录的密码。
-
-
-virtualDirectoryDefaults.logonMethod
:-
含义:设置虚拟目录的默认登录方法。
-
用途:例如,
ClearText
或Network
。
-
-
-virtualDirectoryDefaults.allowSubDirConfig
:-
含义:设置是否允许子目录配置。
-
用途:如果设置为
true
,子目录可以覆盖父目录的配置。
-
路径相关配置参数
-
-[path='string'].path
:-
含义:设置特定路径的路径。
-
用途:指定路径的相对路径。
-
-
-[path='string'].applicationPool
:-
含义:设置特定路径的应用程序池。
-
用途:指定应用程序池的名称。
-
-
-[path='string'].enabledProtocols
:-
含义:设置特定路径的启用协议。
-
用途:例如,
http
或https
。
-
-
-[path='string'].virtualDirectoryDefaults.path
:-
含义:设置特定路径的虚拟目录默认路径。
-
用途:指定虚拟目录的根路径。
-
-
-[path='string'].virtualDirectoryDefaults.physicalPath
:-
含义:设置特定路径的虚拟目录默认物理路径。
-
用途:指定虚拟目录的文件系统路径。
-
-
-[path='string'].virtualDirectoryDefaults.userName
:-
含义:设置特定路径的虚拟目录默认用户名。
-
用途:指定访问虚拟目录的用户名。
-
-
-[path='string'].virtualDirectoryDefaults.password
:-
含义:设置特定路径的虚拟目录默认密码。
-
用途:指定访问虚拟目录的密码。
-
-
-[path='string'].virtualDirectoryDefaults.logonMethod
:-
含义:设置特定路径的虚拟目录默认登录方法。
-
用途:例如,
ClearText
或Network
。
-
-
-[path='string'].virtualDirectoryDefaults.allowSubDirConfig
:-
含义:设置特定路径的虚拟目录是否允许子目录配置。
-
用途:如果设置为
true
,子目录可以覆盖父目录的配置。
-
-
-[path='string'].[path='string'].path
:-
含义:设置嵌套路径的路径。
-
用途:指定嵌套路径的相对路径。
-
-
-[path='string'].[path='string'].physicalPath
:-
含义:设置嵌套路径的物理路径。
-
用途:指定嵌套路径的文件系统路径。
-
-
-[path='string'].[path='string'].userName
:-
含义:设置嵌套路径的用户名。
-
用途:指定访问嵌套路径的用户名。
-
-
-[path='string'].[path='string'].password
:-
含义:设置嵌套路径的密码。
-
用途:指定访问嵌套路径的密码。
-
-
-[path='string'].[path='string'].logonMethod
:-
含义:设置嵌套路径的登录方法。
-
用途:例如,
ClearText
或Network
。
-
-
-[path='string'].[path='string'].allowSubDirConfig
:-
含义:设置嵌套路径是否允许子目录配置。
-
用途:如果设置为
true
,子目录可以覆盖父目录的配置。
-
总结
这些参数用于配置IIS站点的行为,包括绑定、日志、失败请求跟踪、应用程序和虚拟目录的默认设置等。根据实际需求,可以灵活调整这些参数以优化站点的性能和功能。
配置虚拟应用池
APPCMD set apppool [标识符] [-参数1:值1 ...]
允许对指定的应用程序池设置属性。必须提供准确的应用程序池标识符,并且该标识符必须能够解析为现有应用程序池。
支持的参数:
identifier (必需)
要修改的应用程序池的应用程序池名称
/apppool.name
要修改的应用程序池的应用程序池名称(与标识符相同)
/?
显示可针对应用程序池对象设置的动态属性
示例:
设置应用程序池“DefaultAppPool”的“autoStart”属性。
其他参数
-queueLength
-autoStart
-enable32BitAppOnWin64
-managedRuntimeVersion
-managedRuntimeLoader
-enableConfigurationOverride
-managedPipelineMode
-CLRConfigFile
-passAnonymousToken
-startMode
-processModel.identityType
-processModel.userName
-processModel.password
-processModel.loadUserProfile
-processModel.setProfileEnvironment
-processModel.logonType
-processModel.manualGroupMembership
-processModel.idleTimeout
-processModel.maxProcesses
-processModel.shutdownTimeLimit
-processModel.startupTimeLimit
-processModel.pingingEnabled
-processModel.pingInterval
-processModel.pingResponseTime
-recycling.disallowOverlappingRotation
-recycling.disallowRotationOnConfigChange
-recycling.logEventOnRecycle
-recycling.periodicRestart.memory
-recycling.periodicRestart.privateMemory
-recycling.periodicRestart.requests
-recycling.periodicRestart.time
-recycling.periodicRestart.schedule.[value='timespan'].value
-failure.loadBalancerCapabilities
-failure.orphanWorkerProcess
-failure.orphanActionExe
-failure.orphanActionParams
-failure.rapidFailProtection
-failure.rapidFailProtectionInterval
-failure.rapidFailProtectionMaxCrashes
-failure.autoShutdownExe
-failure.autoShutdownParams
-cpu.limit
-cpu.action
-cpu.resetInterval
-cpu.smpAffinitized
-cpu.smpProcessorAffinityMask
-cpu.smpProcessorAffinityMas
含义如下:
应用程序池配置参数
-
-queueLength
:-
含义:设置应用程序池请求队列的最大长度。
-
用途:当请求队列超过此值时,新请求将被拒绝。
-
-
-autoStart
:-
含义:设置应用程序池是否自动启动。
-
用途:如果设置为
true
,IIS启动时会自动启动该应用程序池。
-
-
-enable32BitAppOnWin64
:-
含义:在64位系统上启用32位应用程序支持。
-
用途:如果设置为
true
,应用程序池将以32位模式运行。
-
-
-managedRuntimeVersion
:-
含义:指定应用程序池使用的 .NET 运行时版本。
-
用途:例如,
v4.0
表示使用 .NET Framework 4.0。
-
-
-managedRuntimeLoader
:-
含义:指定托管运行时加载器。
-
用途:通常用于自定义运行时加载器。
-
-
-enableConfigurationOverride
:-
含义:启用配置覆盖。
-
用途:允许子目录覆盖父目录的配置。
-
-
-managedPipelineMode
:-
含义:指定托管管道模式。
-
用途:可选值为
Integrated
(集成模式)或Classic
(经典模式)。
-
-
-CLRConfigFile
:-
含义:指定CLR配置文件的路径。
-
用途:用于自定义CLR的配置。
-
-
-passAnonymousToken
:-
含义:设置是否传递匿名令牌。
-
用途:如果设置为
true
,匿名用户令牌将传递给应用程序。
-
-
-startMode
:-
含义:设置应用程序池的启动模式。
-
用途:可选值为
AlwaysRunning
(始终运行)或OnDemand
(按需启动)。
-
进程模型参数
-
-processModel.identityType
:-
含义:设置应用程序池的标识类型。
-
用途:可选值为
LocalSystem
、LocalService
、NetworkService
、SpecificUser
或ApplicationPoolIdentity
。
-
-
-processModel.userName
:-
含义:设置自定义账户的用户名。
-
用途:当
identityType
为SpecificUser
时使用。
-
-
-processModel.password
:-
含义:设置自定义账户的密码。
-
用途:当
identityType
为SpecificUser
时使用。
-
-
-processModel.loadUserProfile
:-
含义:设置是否加载用户配置文件。
-
用途:如果设置为
true
,将加载用户配置文件。
-
-
-processModel.setProfileEnvironment
:-
含义:设置是否加载用户环境变量。
-
用途:如果设置为
true
,将加载用户环境变量。
-
-
-processModel.logonType
:-
含义:设置登录类型。
-
用途:可选值为
LogonBatch
、LogonService
或LogonInteractive
。
-
-
-processModel.manualGroupMembership
:-
含义:设置是否手动管理用户组。
-
用途:如果设置为
true
,用户组将不会自动继承。
-
-
-processModel.idleTimeout
:-
含义:设置应用程序池的空闲超时时间。
-
用途:超过此时间后,空闲的工作进程将被关闭。
-
-
-processModel.maxProcesses
:-
含义:设置应用程序池的最大工作进程数。
-
用途:用于配置Web Garden(多个工作进程)。
-
-
-processModel.shutdownTimeLimit
:-
含义:设置应用程序池的关闭时间限制。
-
用途:超过此时间后,工作进程将被强制关闭。
-
-
-processModel.startupTimeLimit
:-
含义:设置应用程序池的启动时间限制。
-
用途:超过此时间后,启动失败。
-
-
-processModel.pingingEnabled
:-
含义:设置是否启用Ping功能。
-
用途:如果设置为
true
,IIS将定期Ping工作进程以检查其状态。
-
-
-processModel.pingInterval
:-
含义:设置Ping的时间间隔。
-
用途:单位为秒。
-
-
-processModel.pingResponseTime
:-
含义:设置Ping的响应时间限制。
-
用途:超过此时间后,工作进程将被回收。
-
回收参数
-
-recycling.disallowOverlappingRotation
:-
含义:设置是否禁止重叠回收。
-
用途:如果设置为
true
,新工作进程启动前,旧工作进程必须完全关闭。
-
-
-recycling.disallowRotationOnConfigChange
:-
含义:设置是否禁止在配置更改时回收。
-
用途:如果设置为
true
,配置更改不会触发回收。
-
-
-recycling.logEventOnRecycle
:-
含义:设置回收时是否记录事件日志。
-
用途:可选值为
Time
、Requests
、Memory
等。
-
-
-recycling.periodicRestart.memory
:-
含义:设置基于内存的定期回收阈值。
-
用途:单位为MB。
-
-
-recycling.periodicRestart.privateMemory
:-
含义:设置基于私有内存的定期回收阈值。
-
用途:单位为MB。
-
-
-recycling.periodicRestart.requests
:-
含义:设置基于请求数的定期回收阈值。
-
用途:单位为请求数。
-
-
-recycling.periodicRestart.time
:-
含义:设置基于时间的定期回收间隔。
-
用途:单位为分钟。
-
-
-recycling.periodicRestart.schedule.[value='timespan'].value
:-
含义:设置基于计划的定期回收时间。
-
用途:例如,每天凌晨2点回收。
-
故障参数
-
-failure.loadBalancerCapabilities
:-
含义:设置负载均衡器功能。
-
用途:例如,
HttpLevel
或TcpLevel
。
-
-
-failure.orphanWorkerProcess
:-
含义:设置是否启用孤立工作进程。
-
用途:如果设置为
true
,故障进程将被孤立。
-
-
-failure.orphanActionExe
:-
含义:设置孤立进程的操作程序。
-
用途:指定可执行文件的路径。
-
-
-failure.orphanActionParams
:-
含义:设置孤立进程的操作参数。
-
用途:传递给可执行文件的参数。
-
-
-failure.rapidFailProtection
:-
含义:设置是否启用快速失败保护。
-
用途:如果设置为
true
,频繁崩溃的应用程序池将被禁用。
-
-
-failure.rapidFailProtectionInterval
:-
含义:设置快速失败保护的时间间隔。
-
用途:单位为分钟。
-
-
-failure.rapidFailProtectionMaxCrashes
:-
含义:设置快速失败保护的最大崩溃次数。
-
用途:超过此次数后,应用程序池将被禁用。
-
-
-failure.autoShutdownExe
:-
含义:设置自动关闭的可执行文件。
-
用途:指定可执行文件的路径。
-
-
-failure.autoShutdownParams
:-
含义:设置自动关闭的参数。
-
用途:传递给可执行文件的参数。
-
CPU参数
-
-cpu.limit
:-
含义:设置CPU使用率限制。
-
用途:单位为百分比。
-
-
-cpu.action
:-
含义:设置CPU使用率超限时的操作。
-
用途:可选值为
NoAction
、KillW3wp
或Throttle
。
-
-
-cpu.resetInterval
:-
含义:设置CPU使用率重置间隔。
-
用途:单位为分钟。
-
-
-cpu.smpAffinitized
:-
含义:设置是否启用CPU亲和性。
-
用途:如果设置为
true
,工作进程将绑定到特定的CPU核心。
-
-
-cpu.smpProcessorAffinityMask
:-
含义:设置CPU亲和性掩码。
-
用途:指定工作进程可以使用的CPU核心。
-
-
-cpu.smpProcessorAffinityMask2
:-
含义:设置CPU亲和性掩码(64位系统)。
-
用途:指定工作进程可以使用的CPU核心。
-
总结
这些参数用于配置IIS应用程序池的行为,包括进程模型、回收策略、故障处理和CPU限制等。根据实际需求,可以灵活调整这些参数以优化应用程序池的性能和稳定性。


文章评论 本文章有个评论