1

一旦您使用并设置 Azure ARRAffinity 响应 cookie 并将其发送回 Azure,您是否应该通过下一个响应将其取回?

我刚刚完成了一些代码,它将 Azure 响应 cookie 一直带到浏览器,将其设置为会话 cookie,然后我将其作为 cookie 在请求中传递回 Azure。令我惊讶的是,我没有拿回这个饼干,我只是第一次看到它。但是我感觉这可能是预期的行为 - 我可以在文档中找到任何内容。当我尝试将 cookie 更改为某个组合值时,下一个响应会返回正确的 cookie。

public class RestRequestWithAffinity : RestRequest
{
    public RestRequestWithAffinity(string resource, IRequestWithAffinity request)
        : base(resource)
    {
        if (!string.IsNullOrEmpty(request.AffinityValue))
        {
            AddCookie("ARRAffinity", request.AffinityValue);
        }
    }
}

 var request = new RestRequestWithAffinity(url, feedRequest)
        {
            Method = Method.GET
        };

// cookie doesn't come back when already in request
IRestResponse response = await _client.ExecuteTaskAsync(request);
4

2 回答 2

0

是的,您应该在下一次回复时将其取回。您可以查看以下链接:

http://azure.microsoft.com/blog/2013/11/18/disabling-arrs-instance-affinity-in-windows-azure-web-sites/

于 2015-06-16T20:28:05.267 回答
0

如果创建 cookie,则选择不同的名称,一切都会好起来的!ARRAffinity是 IIS ARR 模块的保留名称。这就是为什么你可能会看到这种不当行为。

另请注意,如果您使用 Microsoft 提供的公共域(即 yourdomain.cloudapp.net 或 yourdomain.azurewebsites.net),则不能顶级域级别设置 cookie - 即不能为cloudapp.net域或域设置 cookie azurewebsites.net。您应始终使用完整域,包括任何子域来设置 cookie - 即yourdomain.azurewebsites.net.

阅读此处了解有关该问题的更多信息:https ://publicsuffix.org/learn/

于 2015-06-17T14:45:59.970 回答