3

我正在尝试设置一个属性以在设置期间创建的新网站上配置 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”属性无效 - 根据其数据类型“http://www.w3.org/2001/XMLSchema:nonNegativeInteger”,值“[IIS_CONNECTIONTIMEOUT]”无效 - 字符串“[IIS_CONNECTIONTIMEOUT]”无效整数值。

iis:WebSite/@ConnectionTimeout 属性的值“[IIS_CONNECTIONTIMEOUT]”不是合法的整数值。合法整数值从 -2,147,483,648 到 2,147,483,647。

提前致谢

4

1 回答 1

3

如错误消息所述,<iis:WebSite>'ConnectionTimeout属性的值需要整数值。nonNegativeInteger不是一种Formatted类型,它知道如何从方括号中提供的属性中提取值。

因此,除了提供硬编码值之外,我认为您没有其他方法......

或者,您可以创建一个自定义操作,该操作调用appcmd.exe,并在命令行中提供所需的超时值,并将此操作安排在延迟之后ConfitureIIs......但努力似乎远大于好处......

于 2012-11-30T11:25:36.877 回答