回 帖 发 新 帖 刷新版面

主题:关于cookies

if request.Cookies("unpcok")("power")="" then
  response.Expires=0
'        dim cookie as httpcookie
        cookie=new httpcookie("unpcok")
        cookie.values.add("uname","")
        cookie.values.add("nname","")
        cookie.values.add("power",11)
  response.appendcookie(cookie)
end if
---------
第一次运行时cookie并没有定义付值,运行产生如下错误:

“/c”应用程序中的服务器错误。
---------------------------------------------------------------

未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:

生成此未处理异常的源代码只能在调试模式中进行编译时显示。若要启用该功能,请执行以下步骤之一,然后请求 URL:

1. 在生成错误的文件的顶部添加一个“Debug=true”指令。示例:

  <%@ Page Language="C#" Debug="true" %>

或者:

2. 将以下节添加到应用程序的配置文件中:

<configuration>
   <system.web>
       <compilation debug="true"/>
   </system.web>
</configuration>

请注意,第二种方法将使给定应用程序中的所有文件在调试模式下进行编译。第一种方法只使特定文件在调试模式下进行编译。

重要事项:以调试模式运行应用程序肯定会引起内存/性能系统开销。在部署到产品方案中之前,应该确保应用程序已禁用调试。  

堆栈跟踪:


[NullReferenceException: 未将对象引用设置到对象的实例。]
   ASP.index_aspx.__Render__control1(HtmlTextWriter __output, Control parameterContainer) +93
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +27
   System.Web.UI.Control.Render(HtmlTextWriter writer) +7
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
   System.Web.UI.Page.ProcessRequestMain() +1926




--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.2032; ASP.NET 版本:1.1.4322.2032

回复列表 (共2个回复)

沙发

估计应该是你的cookie的过期时间的设置问题,我当初做图书馆调查系统的时候,为了防止有人灌水,使用cookie判断某一台机器上几分钟之内是否有人连续参与调查。当时也碰到一样的问题,研究了好些天终于解决了。
这是我的代码,是c#的。你可以参考一下。
HttpCookie cookie=Request.Cookies["time"];
            if(cookie==null)
            {   
                string tt=DateTime.Now.ToString();
                Response.Cookies["time"].Value=tt;
                Response.Cookies["time"].Expires=DateTime.Now.AddMinutes(5);

            }
            else
            {
                string tt=cookie.Value;
                Response.Write("<script>alert('谢绝灌水!您上次参加调查的时间是"+tt+"!')</script>");
                return;
                
            }

你的代码估计是response.Expires=0
有问题,设置cookie有效期应该Response.Cookies["time"].Expires=DateTime.Now.AddMinutes(5);这样设。再有我发现当把cookie的有效期设为小于5分钟时,在客户端就写不进cookie,大于等于5分钟时就不会有问题。

板凳

我刚刚建立了一个asp.net讨论QQ群组11440220,欢迎加入,c#爱好者的优先考虑呀!

我来回复

您尚未登录,请登录后再回复。点此登录或注册