网页做的时候放在wwwroot/xyzl目录里,复制项目到wwwroot根目录下时注册和登录的链接出现问题,留言板也变的无法使用。
具体情况为:
鼠标放在注册上时可在状态栏看到地址变为http://register/reguser.aspx
在wwwroot/xyzl下放时正常显示(http://localhost/xyzl/register/reguser.aspx
但要是在地址栏直接输入http://localhost/register/login.aspx却可以正常登录
问题就是链接不对了,
定位链接的代码是:reg.NavigateUrl = Context.Request.ApplicationPath 
+ Path.AltDirectorySeparatorChar + "XyzlRegister" 
+ Path.AltDirectorySeparatorChar + "RegUser.aspx";
留言板的问题因为无法下断点,所以找不到原因(留言板可读出存在数据库中的留言,可发表新留言就会出错)
所有这一切在我不换项目文件夹时(即网站放在一开始的开发目录wwwroot/xyzl)全是正常的,留言板能留言,链接也没问题!可能这个问题很菜,希望大家能帮一下,如果很麻烦的话,希望能在线交一下,谢谢!

解决方案 »

  1.   

    文件夹点击右键,WEB共享,设置WEB共享名为xyzl
      

  2.   

    在wwwroot上点右键设置吗?大家帮个忙啊
    因为是边学边做,而且还想着参加学校10月28号的比赛
    大家帮忙解决下下吧我先去上课了!晚上回来再弄!
      

  3.   

    打开你的项目中.csproj.webinfo后缀的文件,看看
    例如我的这个
    <VisualStudioUNCWeb>
        <Web URLPath = "http://localhost/WebApp/WebApp.csproj" />
    </VisualStudioUNCWeb>
    就是把WebApp这个文件夹设置为WEB共享,然后用WebApp.csproj打开项目。
    如果是:
    <VisualStudioUNCWeb>
        <Web URLPath = "http://localhost:9090/WebApp.csproj" />
    </VisualStudioUNCWeb>
    就应该在IIS中设置一个站点目录指向WebApp,并且端口号设置为9090
      

  4.   

    楼上你说的方法我试了试不行啊,而且网页发布时根本就不需要那个文件啊,还有改了后一编译会自动再改会去啊!我把整个项目copy到wwwroot文件夹然后修改.sln文件重新编译也还是不行
    大家发布网站时就是怎么个过程啊!没遇到这个问题吗?是不是我的过程有问题。
    会的说一说啊!分不够的话我再开贴给啊!人生不能如此啊!
      

  5.   

    你看看生成的html代码就知道了
    当在xyzl目录下的时候Context.Request.ApplicationPath=="/xyzl"
    链接的地址就是/xyzl/XyzlRegister/RegUser.aspx,这个是没有问题的
    但是如果放在网站根目录下的话,Context.Request.ApplicationPath是  "/",链接地址就成了//XyzlRegister/RegUser.aspx,前面是两个/,浏览器解析的时候就会把会面的XyzlRegister当成是主机地址其实你这样的情况用相对路径是最好的
    reg.NavigateUrl = "XyzlRegister" + Path.AltDirectorySeparatorChar + "RegUser.aspx";
    这样怎么都不会错
      

  6.   

    OleDbConnection con;
    string sql = string.Empty;
    OleDbCommand cmd;
    string RegIP = Request.UserHostAddress;
    string Content = String.Empty;
    string ubbContent = String.Empty; txtContent.Text = txtContent.Text.Replace("'","‘"); if(txtContent.Text.Length < 5 || txtContent.Text.Length > 300)
    {
    lblTips.Visible = true;
    lblTips.Text = "正文长度请保持在5到300之间!";
    }
    else
    {
    Content = txtContent.Text;
    ubbContent = ubbCode(Content);

    sql = "INSERT INTO [xyzlGuest] ";
    sql += "(GuestName,Content,GuestDate,GuestIP)";
    sql += "VALUES (";
    sql += "'" + txtName.Text + "',";
    sql += "'" + ubbContent + "',";
    sql += "'" + DateTime.Now + "',";
    sql += "'" + RegIP + "'";
    sql += ")"; string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + Server.MapPath("Data/xyzl.mdb");
    con = new OleDbConnection(conStr);
    cmd = new OleDbCommand(sql,con);
    con.Open(); bool doredirect = true; try
    {
    cmd.ExecuteNonQuery();
    }
    catch
    {
    doredirect = false;
    lblTips.Visible = true;
    lblTips.Text = "未知错误!留言失败!";
    }

    finally
    {

    con.Close();
    } if (doredirect)
    Response.Redirect("Guest.aspx");
    }代码如下,执行时会跳到catch里
    但在wwwroot/xyzl文件夹里时是能用的!
      

  7.   

    去掉try/catch块,看看具体是什么错误,看情况应该是数据库文件路径或文件权限上的问题
      

  8.   

    http://community.csdn.net/Expert/topic/5059/5059918.xml?temp=.761944
    你到上面那个贴子把分接了吧!