我在VS2005调试的时候没有出现问题,可是在发布的时候却出现了如下错误?未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
[NullReferenceException: 未将对象引用设置到对象的实例。]
   _Default.CheckPopedom() +110
   _Default.Page_Load(Object sender, EventArgs e) +5
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +47
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061 网站起始页的代码如下
public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        CheckPopedom();
    }    private void CheckPopedom()
    {
        string username = SystemInformation.UserName.ToString();
        string strPath = "LDAP://OU=Yamani_Users,DC=yamani,DC=com,DC=cn";
        DirectoryEntry objDE = new DirectoryEntry(strPath);        DirectorySearcher Searcher = new DirectorySearcher(objDE);
        Searcher.Filter = "(&(objectclass=user)   (givenName=" + username + "))";
        //Searcher.Filter = "(&(objectclass=user)   (givenName=chen.zh))";
        SearchResult result = Searcher.FindOne();        DirectoryEntry de = result.GetDirectoryEntry();
        string distinguishedName = de.Properties["distinguishedName"].Value.ToString();
        string department = de.Properties["department"].Value.ToString();
        int count = de.Properties["memberof"].Count;
        for (int i = 0; i < count; i++)
        {
            string member = de.Properties["memberof"][i].ToString();
            if (member.IndexOf("CN=DIKQ-All-View") >= 0)
            {
                Session["Popedom"] = "All";
                Response.Redirect("main.htm");
                break;
            }
            else if (member.IndexOf("CN=DIKQ-BZ-View") >= 0)
            {
                Session["Popedom"] = "DI-BZ";
                Response.Redirect("Single.htm");
                break;
            }
            else if (member.IndexOf("CN=DIKQ-HZ-View") >= 0)
            {
                Session["Popedom"] = "DI-HZ";
                Response.Redirect("Single.htm");
                break;
            }
            else if (member.IndexOf("CN=DIKQ-RZ-View") >= 0)
            {
                Session["Popedom"] = "DI-RZ";
                Response.Redirect("Single.htm");
                break;
            }
            else if (member.IndexOf("CN=DIHQ-WZ-View") >= 0)
            {
                Session["Popedom"] = "DI-WZ";
                Response.Redirect("Single.htm");
                break;
            }
        }
        Response.Redirect("falsePage.aspx");
    }
}
请问这是什么原因啊???

解决方案 »

  1.   

    单看代码看不出来 你用iis运行 加断点 跟踪一下 看看哪个对象为null了
      

  2.   

    请问用IIS运行,如何加断点啊??
      

  3.   

    还有此事?debug和release还会相差这么大么?
    你再回vs2005加断点调试一下 看看有没有问题呢
      

  4.   

    白痴IIS怎么加断点。把配置文件弄成Debug模式,然后你用IIS调试就可以看到具体那个代码语句出现对象被赋Null的情况了。空异常是最容易查找的错误。
    靠,鸟人。几月没见写的代码水平这么高了。我都看不到全懂