尝试自动配置网站,需要为netcore应用程序设置一些环境变量。
我准备了以下脚本:
$env:sitename="MyApp"
$env:IMAGEDIRECTORYPATH="C:\Temp\Images\"
$env:REDISINSTANCENAME="DEV"
$env:CACHESERVERHOSTIP="192.168.0.1"
$env:QUEUEMACHINENAME="BOG11"
$env:QUEUESALGORITHMSQUEUE="BOG11\private$\Algorithms"
Import-Module WebAdministration
$envVariables = (
@{name='SignalRHub';value="$env:IMAGEDIRECTORYPATH"},
@{name='ApiServerUrl';value="$env:QUEUESALGORITHMSQUEUE"}
)
$envVariables2 = (
@{name='SignalRHub3';value="$env:IMAGEDIRECTORYPATH"},
@{name='ApiServerUrl3';value="$env:QUEUESALGORITHMSQUEUE"}
)
set-WebConfigurationProperty -pspath "MACHINE/WEBROOT/APPHOST/$env:SiteName" -filter "system.webServer/aspNetCore/environmentVariables" -name "." -value $envVariables
set-WebConfigurationProperty -pspath "MACHINE/WEBROOT/APPHOST/$env:SiteName" -filter "system.webServer/aspNetCore/environmentVariables" -name "." -value $envVariables2
我在服务器A中运行了脚本,它运行正常。
然后我在服务器B中运行了脚本,我得到了这个:
set-WebConfigurationProperty : The request is not supported. (Exception from HRESULT: 0x80070032)
At line:23 char:1
+ set-WebConfigurationProperty -pspath "MACHINE/WEBROOT/APPHOST/$env:Si ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Set-WebConfigurationProperty], COMException
+ FullyQualifiedErrorId : System.Runtime.InteropServices.COMException,Microsoft.IIs.PowerShell.Provider.SetConfigurationPropertyCommand
set-WebConfigurationProperty : The request is not supported. (Exception from HRESULT: 0x80070032)
At line:24 char:1
+ set-WebConfigurationProperty -pspath "MACHINE/WEBROOT/APPHOST/$env:Si ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Set-WebConfigurationProperty], COMException
+ FullyQualifiedErrorId : System.Runtime.InteropServices.COMException,Microsoft.IIs.PowerShell.Provider.SetConfigurationPropertyCommand
服务器B是从服务器B克隆的。
什么可能导致这种行为?
答案 0 :(得分:1)
您可以尝试使用此命令:
Set-WebConfigurationProperty -pspath "MACHINE/WEBROOT/APPHOST" -location $env:sitename -filter "system.webServer/aspNetCore/environmentVariables" -name "." -value $envVars
答案 1 :(得分:0)
我遇到了同样的问题。在开发服务器上工作,得到了质量检查服务器上原始张贴者所描述的错误。一个是另一个的克隆。问题是要测试QA服务器,我首先在IIS中手动设置了站点,然后通过IIS中的配置编辑器手动输入了环境变量。按照说明运行脚本失败,然后失败。但是,当我清除现有的手动输入的配置以使环境变量为零时,使用Set-WebConfigurationProperty设置环境变量的脚本将起作用。我不必使用-Location参数。
更新:发言太早。原来在MACHINE / WEBROOT / APPHOST级别设置了相同的变量。在站点级别清除它们时,脚本可以工作,但是此后在后续部署中进行更新时,脚本再次中断。对我来说,答案是如果在站点级别更新或在APPHOST级别而不是站点级别更新,则在APPHOST级别删除重复的环境变量。当然,将变量放在APPHOST级别将为所有站点设置该变量。希望这会有所帮助。