我正在尝试设置一个属性来配置在安装过程中创建的新网站上的IIS:Website ConnectionTimeout值。
但是我无法,因为ConnectionTimeout的值必须是整数,而不是字符串。
在我的product.wxs中,我有以下内容:
<Control Id="IisConnectionTimeoutLabel" Type="Text" X="45" Y="164" Width="100" Height="15" TabSkip="no" Text="Connection Timeout (sec):" />
<Control Id="IisConnectionTimeoutEdit" Type="Edit" X="45" Y="176" Width="220" Height="18" Property="IIS_CONNECTIONTIMEOUT" Text="{80}" Integer="yes" />
在我的IisConfiguration.wxs中,我有以下内容:
<Property Id="IIS_CONNECTIONTIMEOUT" Value="300" />
<iis:WebSite Id="EersWebsite" Description="[IIS_WEBSITENAME]" ConfigureIfExists="yes" Directory="WEBINSTALLDIR" DirProperties="EersWebsiteDirProperties" ConnectionTimeout="[IIS_CONNECTIONTIMEOUT]">
当我构建项目时,我得到以下内容:
'ConnectionTimeout'属性无效 - 值 '[IIS_CONNECTIONTIMEOUT]'根据其数据类型无效 'http://www.w3.org/2001/XMLSchema:nonNegativeInteger' - 字符串 '[IIS_CONNECTIONTIMEOUT]'不是有效的整数值。
iis:WebSite / @ ConnectionTimeout属性的值, '[IIS_CONNECTIONTIMEOUT]'不是合法的整数值。法律 整数值从-2,147,483,648到2,147,483,647。
提前致谢
答案 0 :(得分:3)
如错误消息所述,<iis:WebSite>
的{{1}}属性的值需要整数值。 ConnectionTimeout
不是Formatted
类型,它知道如何从方括号中提供的属性中提取值。
因此,除了提供硬编码值之外,我认为你没有办法......
或者,您可以创建一个自定义操作,该操作会调用nonNegativeInteger
,并在命令行中提供所需的超时值,并在appcmd.exe
之后安排此操作延迟...但是这些工作似乎比利益大得多......