问题描述
我制作的网站是用VS2008做的一个摄影店的宣传网站,里面有一个作品展示页面,被做成了类似网络相册的样子,一开始在GalleryInCategory.aspx这个网页上只显示缩略图,点缩略图打开新的网页PhotoDetail.aspx看照片大图,中间的参数用Session传值。现在这个网站(包括出问题的两个页面)在本地测试正常,发布到服务器上后,用我自己的电脑测试正常,但用很多其他人的电脑测试,当访问PhotoDetail.aspx时出现NullReferenceException异常。因为这个问题在我自己的电脑上没有问题,所以我在怀疑是不是VS2008发布的网站需要一些相关的组件才能访问,而很多参与开发的普通用户的电脑上没有这些组件,或者是不是VS2008的.NetFramework版本过高(我发布时候使用的是2.0版)。现在问题无法解决,希望牛人们来帮小弟的忙!!附:1.我的开发环境VisualStudio2008,Vista操作系统,.Netframework2.02.出错的网页:http://www.roumei-baby.com/GalleryInCategory.aspx点其中一张小图看大图时会出错。顺便大家也帮小弟尝试一下,看你们访问的时候会不会出错。3.后台源代码:GalleryInCategory.aspx.cs源代码usingSystem;usingSystem.Collections;usingSystem.Configuration;usingSystem.Data;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.HtmlControls;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;publicpartialclassGalleryInCategory:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){try{LabelType.Text=Request.QueryString["type"].ToString();}catch{LabelType.Text="百天-1岁";}Session["type"]=LabelType.Text;}}PhotoDetail.aspx.cs源代码usingSystem;usingSystem.Collections;usingSystem.Configuration;usingSystem.Data;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.HtmlControls;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.IO;publicpartialclassPhotoDetail:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){try{//////以下代码为获取当前图片在文件夹中的序号////stringtemp="RouMei";//在下面判断会用到的变量LabelPath.Text=Request.QueryString["path"].ToString();Image3.ImageUrl=LabelPath.Text;stringdir="~/UploadPhotos/"+Session["type"].ToString()+"/";dir=Server.MapPath(dir);DirectoryInfodi=newDirectoryInfo(dir);FileInfo[]fis=di.GetFiles();//获得当前图片titleLabelfileName=this.FormView1.FindControl("titleLabel")asLabel;for(inti=0;i<fis.Length;i++){//去掉文件扩展名intmark=fis[i].ToString().LastIndexOf('.');if((mark>-1)&&(mark<fis[i].ToString().Length-1)){temp=fis[i].ToString().Substring(0,mark);}if(temp==fileName.Text){Session["now"]=i;break;}}Label3.Text=((int)Session["now"]+1).ToString();Label5.Text=(fis.Length).ToString();}catch(NullReferenceException){Response.Write("<scriptlanguage='javascript'>alert('网页已经过期!请重试!');window.location.href='GalleryInCategory.aspx';</script>");}/////////////////////////////}protectedvoidImageButtonPrevious_Click(objectsender,ImageClickEventArgse){try{stringdir="~/UploadPhotos/"+Session["type"].ToString()+"/";stringfullDir;fullDir=Server.MapPath(dir);DirectoryInfodi=newDirectoryInfo(fullDir);FileInfo[]fis=di.GetFiles();if((int)Session["now"]!=0){dir+=fis[(int)Session["now"]-1].ToString();}else{dir+=fis[fis.Length-1].ToString();}Response.Redirect("PhotoDetail.aspx?path="+dir);}catch(NullReferenceException){Response.Write("<scriptlanguage='javascript'>alert('网页已经过期!请重试!');window.location.href='GalleryInCategory.aspx';</script>");}}protectedvoidImageButtonNext_Click(objectsender,ImageClickEventArgse){try{stringdir="~/UploadPhotos/"+Session["type"].ToString()+"/";stringfullDir;fullDir=Server.MapPath(dir);DirectoryInfodi=newDirectoryInfo(fullDir);FileInfo[]fis=di.GetFiles();if((int)Session["now"]!=fis.Length-1){dir+=fis[(int)Session["now"]+1].ToString();}else{dir+=fis[0].ToString();}Response.Redirect("PhotoDetail.aspx?path="+dir);}catch{Response.Write("<scriptlanguage='javascript'>alert('网页已经过期!请重试!');window.location.href='GalleryInCategory.aspx';</script>");}}}注:服务器上面的并没有加trycatch语句块,而是所有语句直接写在外面,这样可以更好的暴露问题。希望各位大牛帮忙!!