C# WebClient未发送所有cookie

C# WebClient未发送所有cookie,c#,asp.net,C#,Asp.net,我正在使用一个支持cookie的web客户端 public class CookieAwareWebClient : WebClient { public CookieContainer m_container = new CookieContainer(); protected override WebRequest GetWebRequest(Uri address) { WebRequest request = base.GetWebReques

我正在使用一个支持cookie的web客户端

public class CookieAwareWebClient : WebClient
{

    public CookieContainer m_container = new CookieContainer();

    protected override WebRequest GetWebRequest(Uri address)
    {
        WebRequest request = base.GetWebRequest(address);
        if (request is HttpWebRequest)
        {
            (request as HttpWebRequest).CookieContainer = m_container;
        }
        return request;
    }

    public CookieCollection Cookies(Uri domain)
    {
        return m_container.GetCookies(domain);
    }
}
并向一个网站提出一些请求,该网站会删除一组类似这样的cookie

webClient.Cookies(new Uri("http://<domain>.com")).Cast<Cookie>().ToArray()

{System.Net.Cookie[7]}
    [0]: {UsrLocale=en_CA}
    [1]: {Country=CA}
    [2]: {$Version=1; ca_ord="UJMupexgTADsaH1yNi9eyA=="; $Path=/; $Domain=.<domain>.com}
    [3]: {isLoggedin=false}
    [4]: {cartCount=1}
    [5]: {userPrefLanguage=en_CA}
webClient.Cookies(新Uri(“http://.com))).Cast().ToArray()
{System.Net.Cookie[7]}
[0]:{UsrLocale=en_CA}
[1] :{Country=CA}
[2] :{$Version=1;ca_ord=“UJMupexgTADsaH1yNi9eyA=”;$Path=/;$Domain=…com}
[3] :{isLoggedin=false}
[4] :{cartCount=1}
[5] :{userPrefLanguage=en_CA}
下一个请求没有按预期工作,当我查看fiddler时,我看到cookie[2]没有添加到头中。从外观上看,这一点相当重要。有人知道为什么不将其添加到请求中吗?所有其他域都会很好地弹出,我请求的域是cookie中列出的域的子域,即subdomain..com

var domain = new Uri("http://domain.com");
                    var webClient = new CookieAwareWebClient();
                    webClient.OpenRead("http://sub.domain.com");
                    webClient.RefreshCookies(domain);
                    webClient.UploadValues("http://sub.domain.com/browse/submit.jsp", new NameValueCollection
                        {
                            {"productId","prod610181"},
                            {"skuId","3431733"},
                            {"quantity","1"},
                            {"page","MAIN"}
                        });
                    webClient.RefreshCookies(domain);
                    webClient.OpenRead("http://sub.domain.com/shopping/bag.jsp");
                    webClient.RefreshCookies(domain);
                    var order = webClient.Cookies(new Uri("http://domain.com")).Cast<Cookie>().ToArray();
var域=新Uri(“http://domain.com");
var webClient=new-CookieAwareWebClient();
webClient.OpenRead(“http://sub.domain.com");
webClient.RefreshCookies(域);
webClient.UploadValues(“http://sub.domain.com/browse/submit.jsp,新名称ValueCollection
{
{“productId”,“prod610181”},
{“臭鼬”,“3431733”},
{“数量”,“1”},
{“页面”,“主”}
});
webClient.RefreshCookies(域);
webClient.OpenRead(“http://sub.domain.com/shopping/bag.jsp");
webClient.RefreshCookies(域);
var order=webClient.Cookies(新Uri(“http://domain.com)),Cast().ToArray();

您能添加发出请求的代码吗?即使我制造了具有相同域/路径限制的类似cookie,我也无法重现该问题。奇怪的是,我刚刚把代码移植到mono上,效果很好。我使用的是VS2012 RC,所以可能有点奇怪。