我正在尝试设置一个属性来配置在安装过程中创建的新网站上配置 IIS:网站连接超时值。
但是我不能,因为连接超时的值必须是整数,而不是字符串。
在我的产品.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]">
当我构建项目时,我得到以下内容:
"连接超时"属性无效 - 值 "[IIS_CONNECTIONTIMEOUT]"根据其数据类型无效 "http://www.w3.org/2001/XMLSchema:nonNegativeInteger" - 字符串 "[IIS_CONNECTIONTIMEOUT]"不是有效的整数值。
iis:WebSite/@ConnectionTimeout 属性的值, "[IIS_CONNECTIONTIMEOUT]"不是合法的整数值。 法律 整数值介于 -2,147,483,648 到 2,147,483,647 之间。
提前致谢
正如错误消息所述,<iis:WebSite>
的 ConnectionTimeout
属性的值需要整数值。nonNegativeInteger
不是Formatted
类型,它知道如何从方括号中提供的属性中提取值。
因此,我认为除了提供硬编码值之外,您在这里没有办法......
或者,您可以创建一个自定义操作,该操作调用 appcmd.exe
,并在命令行中提供所需的超时值,并将此操作安排在 ConfitureIIs
...但努力似乎比收益大得多......