检查虚拟子域

时间:2011-10-04 12:56:44

标签: c# asp.net

我创建了一个检查子域并重定向到现有子域(用户名)的项目,但是我无法找到为什么当用户名在数据库中时它无法显示它。

在本地系统上它运行得很好..但是当我在服务器上传它时它不起作用..当然我改变评论的位置以取消测试以进行测试..但它不起作用..

它显示此错误:

  

对象引用未设置为对象的实例。

我的代码在页面加载中是这样的:

        //Uri MyUrl = new Uri(Request.Url.ToString());
        //string Url = MyUrl.Host.ToString();

        Uri MyUrl = new Uri("http://Subdomain.Mydomain.com/");
        string Url = MyUrl.Host.ToString();

        string St1 = Url.Split('.')[0];

        if ((St1.ToLower() == "Mydomain") || (St1.ToLower() == "Mydomain"))
        {
            Response.Redirect("Intro.aspx");
        }
        else if (St1.ToLower() == "www")
        {
            string St2 = Url.Split('.')[1];
            if ((St2.ToLower() == "Mydomain") || (St2.ToLower() == "Mydomain"))
            {
                Response.Redirect("Intro.aspx");
            }
            else
            {
                object Blogger = ClsPublic.GetBlogger(St2);
                if (Blogger != null)
                {
                    lblBloger.Text = Blogger.ToString();
                    if (Request.QueryString["id"] != null)
                    {
                        GvImage.DataSourceID = "SqlDataSourceImageId";
                        GvComments.DataSourceID = "SqlDataSourceCommentsId";
                        this.BindItemsList();
                        GetSubComments();
                    }
                    else
                    {
                        SqlConnection scn = new SqlConnection(ClsPublic.GetConnectionString());
                        SqlCommand scm = new SqlCommand("SELECT TOP (1) fId FROM tblImages WHERE (fxAccepted = 1) AND (fBloging = 1) AND (fxSender = @fxSender) ORDER BY fId DESC", scn);
                        scm.Parameters.AddWithValue("@fxSender", lblBloger.Text);
                        scn.Open();
                        lblLastNo.Text = scm.ExecuteScalar().ToString();
                        scn.Close();

                        GvImage.DataSourceID = "SqlDataSourceLastImage";
                        GvComments.DataSourceID = "SqlDataSourceCommentsWId";
                        this.BindItemsList();
                        GetSubComments();
                    }

                    if (Session["User"] != null)
                    {
                        MultiViewCommenting.ActiveViewIndex = 0;
                    }
                    else
                    {
                        MultiViewCommenting.ActiveViewIndex = 1;
                    }
                }
                else
                {
                    Response.Redirect("Intro.aspx");
                }
            }
        }
        else
        {
           object Blogger = ClsPublic.GetBlogger(St1);
           if (Blogger != null)
           {
               lblBloger.Text = Blogger.ToString();
               if (Request.QueryString["id"] != null)
               {
                   GvImage.DataSourceID = "SqlDataSourceImageId";
                   GvComments.DataSourceID = "SqlDataSourceCommentsId";
                   this.BindItemsList();
                   GetSubComments();
               }
               else
               {
                   SqlConnection scn = new SqlConnection(ClsPublic.GetConnectionString());
                   SqlCommand scm = new SqlCommand("SELECT TOP (1) fId FROM tblImages WHERE (fxAccepted = 1) AND (fBloging = 1) AND (fxSender = @fxSender) ORDER BY fId DESC", scn);
                   scm.Parameters.AddWithValue("@fxSender", lblBloger.Text);
                   scn.Open();
                   lblLastNo.Text = scm.ExecuteScalar().ToString();
                   scn.Close();

                   GvImage.DataSourceID = "SqlDataSourceLastImage";
                   GvComments.DataSourceID = "SqlDataSourceCommentsWId";
                   this.BindItemsList();
                   GetSubComments();
               }

               if (Session["User"] != null)
               {
                   MultiViewCommenting.ActiveViewIndex = 0;
               }
               else
               {
                   MultiViewCommenting.ActiveViewIndex = 1;
               }
           }
           else
           {
               Response.Redirect("Intro.aspx");
           }
        }

和我的班级:

public static object GetBlogger(string User)
    {
        SqlConnection scn = new SqlConnection(ClsPublic.GetConnectionString());
        SqlCommand scm = new SqlCommand("SELECT fUsername FROM tblMembers WHERE fUsername = @fUsername", scn);
        scm.Parameters.AddWithValue("@fUsername", User);
        scn.Open();
        object Blogger = scm.ExecuteScalar();

        if (Blogger != null)
        {
            SqlCommand sccm = new SqlCommand("SELECT COUNT(fId) AS Exp1 FROM tblImages WHERE (fxSender = @fxSender) AND (fxAccepted = 1)", scn);
            sccm.Parameters.AddWithValue("fxSender", Blogger);
            object HasQuty = sccm.ExecuteScalar();

            scn.Close();

            if (HasQuty != null)
            {
                int Count = Int32.Parse(HasQuty.ToString());
                if (Count < 10)
                {
                    Blogger = null;
                }
            }
        }

        return Blogger;
    }

如果我的代码有问题哪个地方?

1 个答案:

答案 0 :(得分:0)

如果它在本地工作正常,我想服务器中的URL与它有关。

您是否能够准确找到“未将对象引用设置为对象实例”的位置。例外?这有助于找到问题。

无论如何,检查这个问题,其中提到Request.Url.ToString()在某些情况下可能表现不同(检查接受的答案)→ Request.Url.ToString() returns the machine name nested of the domain