VBScript/IIS - 我如何自动为特定网站设置ASP.NET版本

问题描述:

我需要在IIS 6.0上创建应用程序池和网站的脚本。我已经能够使用adsutil.vbs和iisweb.vbs创建这些文件,但不知道如何将我刚创建的网站的ASP.NET版本设置为2.0.50727.0。VBScript/IIS - 我如何自动为特定网站设置ASP.NET版本

理想情况下,我想adsutil.vbs更新元数据库。我该怎么做呢?

@Chris打我冲在ADSI方式

您可以使用ASPNET_REGIIS.EXE工具做到这一点。机器上安装的每个版本的ASP.NET都有这些工具之一。你可以掏出来 -

这将配置ASP.NET 1.1

%windir%\microsoft.net\framework\v1.1.4322\aspnet_regiis -s W3SVC/[iisnumber]/ROOT 

此配置ASP.NET 2.0

%windir%\microsoft.net\framework\v2.0.50727\aspnet_regiis -s W3SVC/[iisnumber]/ROOT 

您可能已经知道这一点,但如果你有多个1.1和2.0请记住将要更改ASP.NET版本的网站切换到兼容的应用程序池。 ASP.NET 1.1和2.0站点不会混合在同一个应用程序池中。

我在Diablo Pup的博客上找到了以下脚本posted。它使用ADSI自动化。

'****************************************************************************************** 
' Name: SetASPDotNetVersion 
' Description: Set the script mappings for the specified ASP.NET version 
' Inputs: objIIS, strNewVersion 
'****************************************************************************************** 
Sub SetASPDotNetVersion(objIIS, strNewVersion) 
Dim i, ScriptMaps, arrVersions(2), thisVersion, thisScriptMap 
Dim strSearchText, strReplaceText 

Select Case Trim(LCase(strNewVersion)) 
    Case "1.1" 
    strReplaceText = "v1.1.4322" 
    Case "2.0" 
    strReplaceText = "v2.0.50727" 
    Case Else 
    wscript.echo "WARNING: Non-supported ASP.NET version specified!" 
    Exit Sub 
End Select 

ScriptMaps = objIIS.ScriptMaps 
arrVersions(0) = "v1.1.4322" 
arrVersions(1) = "v2.0.50727" 
'Loop through all three potential old values 
For Each thisVersion in arrVersions 
    'Loop through all the mappings 
    For thisScriptMap = LBound(ScriptMaps) to UBound(ScriptMaps) 
    'Replace the old with the new 
    ScriptMaps(thisScriptMap) = Replace(ScriptMaps(thisScriptMap), thisVersion, strReplaceText) 
    Next 
Next 

objIIS.ScriptMaps = ScriptMaps 
objIIS.SetInfo 
wscript.echo "<-------Set ASP.NET version to " & strNewVersion & " successfully.------->" 
End Sub