我的应用程序中有一些依赖于部署插槽的设置。我理解这样的设计决定所带来的惩罚和影响,但这个决定是最终的,适用于我们的案例。
我想知道的是当您更改托管服务的部署插槽(如果有)时会发生什么事件? RoleEnvironmentTopologyChange看起来是正确的,但是在解释中它表示当实例数发生变化时会触发,所以这不是我想要的。
我需要它的原因是使保留插槽的缓存无效 - 进一步传递给获取特定于部署插槽的数据的解析器。
答案 0 :(得分:2)
在VIP交换期间没有任何事件会触发。如果您想在交换时更改某些内容,我建议您在进行交换之前进行配置设置并进行更改。
答案 1 :(得分:0)
您可以通过检查从网关传递到WCF或Web服务器的每个请求的主机头来检测VIP交换。您还可以通过检查主机是否为GUID来检测当前插槽。
请参阅下文,了解如何在调用之间保留变量 How to write a WCF service with in-memory persistent storage?
var host = WebOperationContext.Current.IncomingRequest.Headers [“Host”] ?? “”;
if(host!= currentHost) {
// do something
currentHost = host;
}