问题描述:
使用Server.Mappath将虚拟目录转换成实际目录时,偶尔会出现:“X:\XXX\XXX\”不是有效的虚拟目录,这样的现象。但大多数时候是正常的,不出现这样的问题。
问题背景:
Win2003 IIS6 .NET2 C#
主要出现在一个类中,此类非页面类。在页面类中调用此类实例实现一些功能。无论在类中使用HttpContext.Current.Server.Mappath,还是从页面类中传入的Server.Mappath均“偶尔”出现“不是有效的虚拟目录”这样的错误。请问:
为何如此?
当如何解决?
使用Server.Mappath将虚拟目录转换成实际目录时,偶尔会出现:“X:\XXX\XXX\”不是有效的虚拟目录,这样的现象。但大多数时候是正常的,不出现这样的问题。
问题背景:
Win2003 IIS6 .NET2 C#
主要出现在一个类中,此类非页面类。在页面类中调用此类实例实现一些功能。无论在类中使用HttpContext.Current.Server.Mappath,还是从页面类中传入的Server.Mappath均“偶尔”出现“不是有效的虚拟目录”这样的错误。请问:
为何如此?
当如何解决?
1、Mappath参数,绝对正确—有跟踪
2、有时Mappath出现的虚拟目录会这样:C:\Windows\System32\inetsrv\~\XXX\XXX
3、有时Mappath转换出来的虚拟目录是正确的,但还是产生了错误:不是有效的虚拟目录有时!!!!
Server.Mappath(直接写跟目录路径/xxx/xx)
-------
你的问题是 个别地方需要加//
传入Mappath的参数没有任何问题同样的参数,“有时”有问题而已!
~这个都出来了?你参数怎么传的?Server.MapPath()只接受Html相对路径,返回映射的虚拟目录试试
HttpContext.Current.Request.CurrentExecutionFilePath; //当前执行文件的虚拟路径(如www.123.com/test.aspx不含参数名)
System.IO.Path.GetDirectoryName(Page.Request.PhysicalPath) //当前执行文件的目录(不含文件名)
Server.Mappath("~/PageConfig/")
和
Server.Mappath("~/PageTemplate/")就是上面这两个东西,“偶尔“出现错误,”大多“不出现,即,1/N的人会看到错误页面。---------------------------------------------------
另,最近用VC写ISAPI(网站防木马、后门用)时也发现,在类的构造函数中GetModuleFileName取得的文件的所在目录也为:C:\Windows\System32\inetsrv\站点
但在GetFilterVersion中取得的路径是正确的。