VBScript/IIS – как автоматически установить версию ASP.NET для определенного веб-сайта
-
09-06-2019 - |
Вопрос
Мне нужно написать сценарий создания пулов приложений и веб-сайтов на IIS 6.0.Мне удалось создать их с помощью adutil.vbs и iisweb.vbs, но я не знаю, как установить версию ASP.NET для только что созданных мной сайтов на 2.0.50727.0.
В идеале хотелось бы, чтобы в файлеadsutil.vbs обновлялась метабаза.Как мне это сделать?
Решение
@Крис опереди меня на пути 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.Он использует автоматизацию 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