我正在
Windows Azure模拟器中运行Web项目,并且未加载web.config.我作为一个完整的IIS应用程序运行,我可以在启动dev结构后转到IIS中运行的应用程序,并浏览到文件位置,并验证正确的web.config确实在该文件夹中.
当我运行我的应用程序时,没有加载任何标准的appSetting键,配置或企业库配置.我可以使用所有可用的数据从machine.config中提取.
我已经通过查看配置管理器数据,conn字符串集合验证了这一点,并且有很多关于无法访问我的数据库的错误,因为缺省情况不存在,唯一的conn字符串是来自本地的sql express服务器信息machine.config中.
解决方法
由于角色正在另一个进程中运行,因此您无法正常访问web.config.您的角色属性上的角色设置(右键单击您的角色并选择属性,然后选择设置选项卡)是您应该拥有角色设置的位置,您可以从您的角色代码访问这些角色代码,如下所示:
RoleEnvironment.GetConfigurationSettingValue("MySetting")
如果您仍然真的想要使用web.config,可以首先右键单击web.config并选择Copy if Newer,这样就可以将web.config复制到System.Environment.CurrentDirectory,这是所有另一个角色组装起来.然后你可以使用XML阅读器加载它并自己解析它,我不认为WebConfigurationManager会帮助你,因为它需要一个虚拟路径,所以我怀疑你必须自己解析它.