如何为不同的Azure插槽提供不同的Web.config文件。
我有一个与同一网站的暂存和生产槽我不希望暂存槽是公开的(它只用于测试等),所以我通过web.config文件为该槽设置了身份验证。
问题是,当我上传更改时,生产槽获得与暂存槽相同的web.config文件,该版本设置为仅允许通过身份验证进行访问,并且参数也不同,因此生产槽最终无法访问,我必须在生产槽中手动更改web.config文件以使其工作。
我想有一些方法为生产槽定义一个不同的web.config文件。
更新(在问题中添加更多信息):
我正在使用我的本地机器进行测试(使用本地服务器),即开发环境。 网站是wordpress(wordpress使用php)。
暂停插槽仅供少数人使用,未连接到我的本地Lan,当我有选择地希望他们在将产品发送到生产之前测试我的网站(不同的操作系统,不同平台,不同的移动电话......)时。我可以停止暂存插槽,当我不使用它时,生产资源不会受到影响。 我已经在为不同的connectionStrings和参数使用AppSettings。我不知道如何使用它来定义不同的身份验证设置..?我在web.config文件中使用了身份验证设置(由暂存插槽使用)。
我的web.config文件:
<configuration>
<system.web>
<authorization>
<allow users="[email protected], [email protected], [email protected]"/>
<deny users="*"/>
</authorization>
</system.web>
<system.webServer>
<rewrite>
<rules>
<rule name="WordPress: http://contoso.azurewebsites.net" patternSyntax="Wildcard">
<match url="*"/>
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="index.php"/>
</rule>
</rules>
</rewrite>
</system.webServer>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
您使用的插槽不正确。暂存插槽并不意味着是用于测试的长期应用程序。这些用于在部署时对应用程序进行部署和短期自动测试。
此外,如果您的产品和分段槽几乎相同,那么如果它与生产相同,那么保护分期的重点是什么?
总而言之 - 没有办法做你想做的事。因此,您可以设置单独的WebApp测试并通过web.config保护它。
有几种方法可以完成你想要做的事情。虽然我同意Trailmax - 这似乎是对插槽的预期用途的误用。请记住,插槽与生产槽共享资源(CPU,内存等)。如果您正在使用插槽来进行集成和测试环境,并且有些事情会横向发展,那么您正在影响生产资源。这真的不是一个好主意。
但是如果你想要走这条路,你可以: