如何为asp.net 4.0编写IIS预热脚本?
Posted
技术标签:
【中文标题】如何为asp.net 4.0编写IIS预热脚本?【英文标题】:How to powershell script the IIS warm-up for asp.net 4.0? 【发布时间】:2011-06-14 13:44:05 【问题描述】:谁能告诉我如何为 IIS 编写 powershell 脚本以使用 asp.net 4.0 预热机制?
我已经创建了这个 powershell 脚本,但它似乎没有将任何内容写入 applicationHost.config 文件: (尝试从此处执行第 3 步,但使用 Powershell:http://weblogs.asp.net/gunnarpeipman/archive/2010/01/31/asp-net-4-0-how-to-use-application-warm-up-class.aspx)
Import-Module WebAdministration
$SiteName="Default Web Site"
$ApplicationName=“WebOne“
Add-WebConfiguration "system.applicationHost/sites/site[@name='Default Web Site']/application[@path='WebOne']" -Value @serviceAutoStartEnabled="true";serviceAutoStartProvider="PreWarmMyCache" -PSPath IIS:\Sites\$SiteName\$ApplicationName -Location $SiteName/$ApplicationName
我正在尝试添加这两个 (2) 属性 ( serviceAutoStartEnabled="true" and serviceAutoStartProvider="PreWarmMyCache"):
例如:
<application path="/" serviceAutoStartEnabled="true" serviceAutoStartProvider="PreWarmMyCache" />:
到我当前的应用路径:
<sites>
<site name="Default Web Site" id="1">
<application path="/WebOne" applicationPool="ASP.NET v4.0">
<virtualDirectory path="/" physicalPath="C:\NetProjects\WebOne" />
</application>
</site>
</sites>
我还需要为此编写 powershell 脚本: (此处的第 4 步,但使用 Powershell:http://weblogs.asp.net/gunnarpeipman/archive/2010/01/31/asp-net-4-0-how-to-use-application-warm-up-class.aspx)
<serviceAutoStartProviders>
<add name="PreWarmMyCache" type="PreWarmCache, MyAssembly" />
</serviceAutoStartProviders>
任何帮助将不胜感激。-
我已经在下面编写了 powershell 脚本,这也是需要的,但我需要上面提到的东西( serviceAutoStartEnabled="true" 和 serviceAutoStartProvider="PreWarmMyCache" )。-
#Load IIS Modules
Import-Module WebAdministration
if (Test-Path IIS:\AppPools\SosSWarmUpWorkerProcess)
#Let's delete the entry if it's already there ( while deploying between versions )
Remove-Item IIS:\AppPools\SosSWarmUpWorkerProcess -Force -Recurse
$myNewPool = New-Item IIS:\AppPools\SosSWarmUpWorkerProcess
$myNewPool.managedRuntimeVersion = "4.0"
$myNewPool.startMode="AlwaysRunning"
$myNewPool | Set-Item
【问题讨论】:
【参考方案1】:我找不到允许您为新应用程序设置自动启动的 New-Item 或 New-WebApplication 参数。但是,您可以在创建应用后设置属性:
$vdirPath = Join-Path "IIS:\Sites" (Join-Path $iisSite $virtualDirectoryName)
New-Item $vdirPath -physicalPath $webSitePath -type Application
Set-ItemProperty $vdirPath -name serviceAutoStartEnabled -value "true"
Set-ItemProperty $vdirPath -name serviceAutoStartProvider -value "PreWarmMyCache"
【讨论】:
以上是关于如何为asp.net 4.0编写IIS预热脚本?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 ASP.NET MVC 处理“未找到 404 页面”查询的全部路由?
如何使用 .Net 4.0 中包含的 HttpClient 类将文件上传到在 IIS Express 中运行的 Asp.Net MVC 4.0 操作
ASP.NET 4.0尚未在Web服务器上注册。您需要手动将Web服务器配置为使用ASP.NET,这样您的网站才能正确运行。