我有一个Azure Web角色,其中包含在服务配置(.cscfg文件)中定义的一些设置。假设有一个表示布尔值的设置,因此在我的代码中,我将检索字符串并转换为bool
C#类型 - 使用bool.Parse()
或bool.TryParse()
。
假设服务以有效配置启动,然后一段时间后通过管理门户更改配置,并且执行此操作的人输错了字符串并键入fasle
而不是false
并提交新配置没有注意到。
Azure运行时可能不在乎 - 所有设置都是字符串,fasle
是一个不低于false
的有效字符串。然而,尝试将此字符串转换为布尔值的代码将无法执行此操作。
网络角色代码应如何处理此类情况?
答案 0 :(得分:0)
为每个配置元素设置一个安全的默认值,然后在您编写的自定义库中使用TryParse或等效方法,以将配置项公开给应用程序的其余部分。始终使用“故障安全”心态进行设计(这可能包括使应用程序向用户显示错误,如果没有真正的“故障安全”选项,则该应用程序不可用。)