新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
今天部署产品时,发现一个涉及到路径错误的bug,在开发环境下都OK,但是到了测试环境中却一直报错,经过一番排查,原来错误出在了HttpContext.Current.Server.MapPath这个方法上,之前就一直对这个方法怎样将虚拟路径转化为物理路径不甚了了,今天我忍无可忍,在网上仔细查找了资料,还亲自做了实验,终于弄明白了。在此分享出来,希望能帮助到同样有困惑的人,少走弯路。
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、网站设计、市南网络推广、小程序设计、市南网络营销、市南企业策划、市南品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供市南建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
众所周知我们在URL中的路径都是虚拟路径,最后都要被转化为网站所在服务器的物理路径,一般的路径都很好理解,对大家造成困扰的多是包含这些特殊字符的路径,他们在虚拟路径到物理路径的转化过程中有着特殊的含义。
先在IIS中创建一个网站,网站域名为www.test.com,修改hosts文件将这个域名指向本机,网站目录为C:\inetpub\wwwroot\Test。在这个网站下添加应用程序Shop,目录为D:\Shop。在这个网站和应用程序中同时添加一个目录,取名main。
创建一个WebForm,这个WebForm输出上述所有特殊字符在运行时对应的路径,代码如下:
<% Output(".", "点号"); Output("..", "双点号"); Output("~","波浪号"); Output("/","正斜杠"); Output("\\", "反斜杠"); Output(@"\","反斜杠"); Output(null,"null"); Output(string.Empty, "string.Empty");
Output(@"\main", @"\main"); %>
我们把这个页面分别放到网站和应用程序的根目录以及main目录下,然后访问每个页面,输出如下:
从上面的页面输出可以很好的验证文章开始处的说明,这里需要特别说明的几点是: