我有一个设置,其中webrole在IIS上托管多个网站,通过存储帐户中的配置进行动态部署。
IIS上将运行3方站点,这些站点无法访问RoleEnviroment中的部署设置。有没有办法让我限制IIS站点的访问权限,以便它无法在Azure上使用RoleEnviroment?
Alittle Update:
将重要设置移出配置文件可能会有效。但是<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=c1azuretests;..." />
不能在运行时设置,因为这也是3方网站无法找到的东西。
答案 0 :(得分:0)
有趣而聪明的方法。虽然没有直接的方法来限制对RoleEnvironment的访问,但有一些解决方法:
这两种方法都有利有弊,但我倾向于喜欢第二种方法更好。令人怀疑的是哪一个涉及更多的代码要编写,但在任何一种情况下,您编写的代码都是可重用的。第二种方法的好处是更大更好。
<强>更新强>
当我说配置设置移动到Azure表而不是配置设置时,我指的是所有配置设置。所以你的存储连接字符串也会存在。而且您不必在代码中对它们进行硬编码,而是从Azure Table中读取它们。这还有一些其他的轻微影响,例如您必须在Azure表存储中为这些设置实现监视系统,以确保在表中更新它们时运行的代码中更新它们。就像在更改正在运行的服务的配置时以自动方式一样。
我也不明白你为什么just deploy a new package with changed setting.
,因为你可以change settings while service is running without redeploying the whole service package
!查看API Reference here和walk through guide here。