首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

Server.MapPath()方法在项目发布到IIS后出现错误

2012-01-28 
Server.MapPath()方法在项目发布到IIS后出现异常解决方案中有两个项目:web项目A,类库B。项目A中有测试页面

Server.MapPath()方法在项目发布到IIS后出现异常
解决方案中有两个项目:
web项目A,类库B。
项目A中有测试页面 TestWeb.aspx.cs 
类库中有TestClass.cs 
代码如下:

C# code
public class TestClass{   string path = HttpContext.Current.Server.MapPath(@"~/Bin")+@"\";    public string Test()   {       if(!path.Contains(@"/") && !path.Contains(@"\") )       {           throw new Exception("路径出现异常!异常路径为:"+path);        }   }}


TestWeb.aspx.cs 中调用TestClass 类的Test方法
调用代码如下:
C# code
try{   TestClass _tc = new TestClass ();   _tc.Test();}catch(Exception e){   Page.ClientScript.RegisterStartupScript(this.GetType(), "loadactive", "<script>alert('" + ex.Message + "');</script>");}


在VS中和发布到本机IIS中,正常。
其中VS中 调试,看到path的内容为 d:\\...\\...\\...\\TestWeb\\Bin
发布到服务器上后,有内容弹出:

路径出现异常!异常路径为:
C:ABin

注意:这里不是我写错了,弹出的路径中 确实没有 \ 或者 / 符号
发布后的虚拟目录名称为A,我疑惑的是,为何路径不是 C:\A\Bin 或者C:\\A\\Bin 

请高手指点原因,在线等。




[解决办法]
D:盘不在你的 IIS 虚拟路径上吧.
[解决办法]
这个还真没遇到过,关注!
[解决办法]
mappath取的是相对路径,把~去掉,改成相对当前文件的文件路径试试
上一级用 ../文件 当前路径用 ./文件 下一级用 ./路径/文件
[解决办法]
路径出现异常!异常路径为:
C:ABin
出现这样的问题是因为js的问题。

Page.ClientScript.RegisterStartupScript(this.GetType(), "loadactive", "<script>alert('" + ex.Message + "');</script>"); }


这样写错误的。因为c#.js中都是2个\\代表一个\的。
所以你需要

Page.ClientScript.RegisterStartupScript(this.GetType(), "loadactive", "<script>alert('" + ex.Message.Replace("\\","\\\\").Replace("'","\\'") + "');</script>"); }

热点排行