在IIS网站上设置属性时,我们有时会遇到异常。
在这个特定的示例中,导致错误的代码行是
Set-WebConfigurationProperty -filter "/system.webServer/security/authentication/$($Type)Authentication" -name Enabled -value $valueText -PSPath "IIS:\" -Location $ApplicationName
$Type
是"Windows"
,$valueText
是"False"
结果异常消息(部分德语,英语详细信息在自由文本部分下方):
Set-WebConfigurationProperty : Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
In C:\\[REDACTED]\\Modules\\IIS-Application-Configuration.psm1:83 Zeichen:5
+ Set-WebConfigurationProperty -filter "/system.webServer/security/ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) \[Set-WebConfigurationProperty\], NullReferenceException
+ FullyQualifiedErrorId : System.NullReferenceException,Microsoft.IIs.PowerShell.Provider.SetConfigurationProperty
Command\
不幸的是,错误是不可重现的,所以我们没有办法测试任何类型的解决方案,甚至测试我们必须避免的任何想法。有没有人遇到过这种情况,或者可以解释这种行为。也许甚至提供一种方法来引发错误,这样我们就可以适当地处理这种情况并测试修复?
我们尝试的:我们只是尝试再次运行它,错误消失了。在其他情况下,我们试图在重新执行之前停用iis站点。但由于它不是真正可复制的,我们不确定它是否真的解决了问题(无论如何,在执行这一行之前,iis站点应该在脚本中被禁用)。
通常的网络搜索方法似乎没有多大帮助。
1条答案
按热度按时间4dc9hkyq1#
当您试图访问或操作未正确初始化或不存在的对象时,通常会发生此错误。
当您使用Set-WebProfilationProperty小工具修改属性时,您尝试修改的属性必须已经存在并且可以访问。您可以在Set-WebconfigationProperty之前使用Get-WebconfigationProperty来检查配置中是否存在要修改的属性。
如果它不存在,Get-WebsourceationProperty命令将返回null或空结果。如果它存在,运行Get-WebsourceationProperty可以帮助确保它被正确初始化和可访问。