我有一个设置,其中webrole在IIS上托管多个网站,通过存储帐户中的配置进行动态部署。
将有三方站点在IIS上运行,这些站点不应具有从RoleEnviroment访问部署设置的权限。有没有办法限制IIS站点的访问,这样它就不能在Azure上使用RoleEnviroment?
小更新:
将重要设置移出配置文件可能会起作用。但是<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=c1azuretests;..." />呢?
它不能在运行时设置,因为这也是3party网站不能找到的东西。
发布于 2013-06-07 17:34:25
有趣而聪明的方法。虽然没有直接的方法来限制对RoleEnvironment的访问,但有一些解决方法:
这两种方法各有优缺点,但我倾向于更喜欢第二种。哪一个需要编写更多的代码是值得怀疑的,但无论哪种情况,您编写的代码都将是可重用的。第二种方法带来的好处更大、更好。
更新
当我说将配置设置移动到Azure表而不是配置设置时,我指的是所有配置设置。所以你的存储连接字符串也会在那里。你不需要用代码硬编码它们,而是从Azure Table中读取它们。这也有其他一些轻微的影响,比如你必须在Azure Table Storage中实现这些设置的监控系统,以确保当你在Table中更新它们时,你在运行的代码中更新它们。就像您在更改正在运行的服务的配置时自动执行的操作一样。
我也不明白既然你可以change settings while service is running without redeploying the whole service package,为什么你要just deploy a new package with changed setting.!检查API Reference here和walk through guide here。
https://stackoverflow.com/questions/16980035
复制相似问题