a expiración de @Cookies no funciona en C #

Estoy tratando de hacer una cookie persistente usando C # 4.0 y este código:

HttpCookie AssoCookie = new HttpCookie("AssociateCode", AssociateCode);
AssoCookie.Expires = DateTime.Now.AddMonths(6);
HttpContext.Current.Response.Cookies.Add(AssoCookie);

Desafortunadamente, no funciona y la cookie está caducando. Si uso el complemento de Desarrollador web en Firefox para verificarlo, puedo ver esta información:

Name    AssociateCode
Value   test
Host    localhost
Path    /
Secure  No
Expires At End Of Session

La cookie que estoy haciendo como prueba se acaba de crear allí, nadie más la administra o la edita para que no se pueda sobrescribir. No tengo nada configurado en webconfig para configurar la caducidad de las cookies (de todos modos esto debería anular eso) y si configuro el tiempo de caducidad de algunas cookies no funciona.

Estoy un poco perdido ahora, cada manual, tutorial, blog, lo que reviso dice que solo tiene que establecer la fecha de vencimiento, he depurado, he comprobado que realmente tiene ese valor cuando se creó y al final de Page_PreRender pero simplemente caduca con la sesión, haga lo que haga.

¿Algunas ideas

Estoy usando Firefox 9.0.1 por cierto.

Actualiza

Utilizando el complemento Firebug en Firefox para verificar los encabezados de respuesta, obtengo esto:

Response Headersview source
Cache-Control   private
Connection  Close
Content-Length  21322
Content-Type    text/html; charset=utf-8
Date    Mon, 23 Jan 2012 16:47:08 GMT
Server  ASP.NET Development Server/10.0.0.0
Set-Cookie  AssociateCode=test; expires=Mon, 23-Jul-2012 16:09:04 GMT; path=/
X-AspNet-Version    4.0.30319

Y usando Fiddler obtengo esto:

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
Set-Cookie: AssociateCode=; expires=Mon, 23-Jul-2012 16:27:29 GMT; path=/
X-Powered-By: ASP.NET
Date: Mon, 23 Jan 2012 17:27:29 GMT
Content-Length: 21313

** Actualización 2 ** Estoy comprobando que la Cookie no existe solo comprobando entre las cookies de mi Firefox, pero, en caso de que quiera ver cómo la obtengo más adelante en el código (no es necesario ya que no está allí de todos modos):

try {
    AssociateCode = HttpContext.Current.Request.Cookies.Get("AssociateCode").Value;
} catch { }

Respuestas a la pregunta(6)

Su respuesta a la pregunta