通常,枚举是从 web.config 中的字符串转换而来的,使用Enum.Parse
or Enum.TryParse
。我预计(但尚未检查参考源来确认)WCF 设置也是如此。
Enum.Parse
使用逗号分隔基于标志的枚举值,但如果需要,也可以将等效的整数值解析为字符串。
因此,如果您的问题是在 web.config 设置中连接基于标志的枚举值,您可以使用逗号分隔来实现此目的,例如:
sslProtocols="SSl3, Tls"
sslProtocols="SSl3, Tls, Tls11, Tls12"
或者,如果你的问题是Tls12
不是一个可识别的值,那么这只是在 .NET 4.5 中添加的。如果您正在针对 .NET 4.0 进行编译,则它不会解析为命名枚举。但是,.NET 4.5 是 4.0 的就地更新,因此如果您有 4.5已安装您也许能够解析数值:
sslProtocols="4080"
这是从所有数值的总和中得出的System.Net.SecurityProtocolType
枚举。这些数值也与中的值相同System.Security.Authentication.SslProtocols
and System.IdentityModel.SchProtocols
,所以我猜测它们在你的情况下是相同的。
Ssl3 = 48,
Tls = 192,
Tls11 = 768,
Tls12 = 3072
当然,如果您可以使用它,那么至少升级到 Visual Studio 2012 / .NET 4.5 可能会更清晰,其中命名字符串应该可用。