如何为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 页面”查询的全部路由?

如何为 localhost 网站配置 IIS 7?

如何使用 .Net 4.0 中包含的 HttpClient 类将文件上传到在 IIS Express 中运行的 Asp.Net MVC 4.0 操作

ASP.NET IIS7 的永久 301 重定向

ASP.NET 4.0尚未在Web服务器上注册。您需要手动将Web服务器配置为使用ASP.NET,这样您的网站才能正确运行。

Win10安装IIS并配置ASP.NET 4.0