ASP.NET 不是有效的虚拟路径

胡玉洋 
博客专家认证
2014-11-03 09:23:55
在做一个下载文件的功能时遇到的,如下图:

调试时,在上面代码中url的路径为:“http:/192.168.24.179:8888/files/b.doc”

到了下面获取异常时,捕捉到的路径就变成:“http://192.168.24.179:8888/files/b.doc”



调试时,在上面代码中url的路径为:“http:/192.168.24.179:8888/files/b.doc”

到了下面获取异常时,捕捉到的路径就变成:“http://192.168.24.179:8888/files/b.doc”

少了一个左斜杠 “/”,这时为什么啊?好奇怪的问题。。。。

求大神给予解答。。。。
...全文
630 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlccomeon 2014-11-05
  • 打赏
  • 举报
回复
原来是玉洋啊~~~我现在上传遇到问题了~用本地的VS上传图片到服务器的某路径下~郁闷了。
於黾 2014-11-04
  • 打赏
  • 举报
回复
server.mappath里面填写的应该是path,而不是url 是本地路径,不是网址啊
smthgdin_020 2014-11-03
  • 打赏
  • 举报
回复
server.mappath(url); url是一个相对路径,相对路径是相对于主目录的一个路径前面可以不用写,直接/files/1.doc
胡玉洋  2014-11-03
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
你说你第一行url变量是什么什么值,这跟你的catch哪里抛出的异常时说的字符串值就一定是同一个东西吗?

不会调试,你就会胡乱贴出问题来。

去掉 try....catch,你能够才会调试的。


如果把try....catch去掉后,调试到 string urlServer = Server.MapPath(url);这一行时就报错了:

再走程序就直接跳到global.asax.cs中的
protected void Application_Error(object sender, EventArgs e){}方法中了。。。。
胡玉洋  2014-11-03
  • 打赏
  • 举报
回复
如果把try....catch去掉后,调试到 string urlServer = Server.MapPath(url);这一行时就报错了:


再走程序就直接跳到global.asax.cs中的
protected void Application_Error(object sender, EventArgs e){}方法中了。。。。

  • 打赏
  • 举报
回复
嗯,这不是重点。 重点是:你根本不知道到底哪一条语句抛出的异常,所以你“上面的调试”是个无用功,而且你也不能轻松地自己发现问题。 你所认为某行语句有异常,不是事实。而你根本没有能够去看真正有异常的那条语句。也不可能去查询其使用方法和文档。
胡玉洋  2014-11-03
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
[quote=引用 楼主 huyuyang6688 的回复:] 调试时,在上面代码中url的路径为:“http:/192.168.24.179:8888/files/b.doc” 到了下面获取异常时,捕捉到的路径就变成:“http://192.168.24.179:8888/files/b.doc” 少了一个左斜杠 “/”,这时为什么啊?好奇怪的问题。。。。
到底是多了还是少了斜杠啊?你说的跟你贴出来的图,正相反。[/quote] 您说的对,我写错了,刚好相反,应该是: 调试时,在上面代码中url的路径为:“http://192.168.24.179:8888/files/b.doc” 到了下面获取异常时,捕捉到的路径就变成:“http:/192.168.24.179:8888/files/b.doc”
  • 打赏
  • 举报
回复
你说你第一行url变量是什么什么值,这跟你的catch哪里抛出的异常时说的字符串值就一定是同一个东西吗? 不会调试,你就会胡乱贴出问题来。 去掉 try....catch,你能够才会调试的。
  • 打赏
  • 举报
回复
另外,我强调过多次了,你连具体是哪一行代码抛出异常都不知道,更不知道该调试抛出异常的代码行的哪一个变量,这都是滥用 try...catch 的问题。 这种代码让你丧失了调试能力,调试时不应该有这种代码。
  • 打赏
  • 举报
回复
引用 楼主 huyuyang6688 的回复:
调试时,在上面代码中url的路径为:“http:/192.168.24.179:8888/files/b.doc” 到了下面获取异常时,捕捉到的路径就变成:“http://192.168.24.179:8888/files/b.doc” 少了一个左斜杠 “/”,这时为什么啊?好奇怪的问题。。。。
到底是多了还是少了斜杠啊?你说的跟你贴出来的图,正相反。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧