Copy Code code as follows:
Virtualpathutility.toabsolute ("~/")
Httpruntime.appdomainappvirtualpath
Request.applicationpath
Page.resolveurl ("~")
The results generated by the above code are as follows:
When accessed as a Web site, the results are as follows:
Copy Code code as follows:
Virtualpathutility.toabsolute ("~/") =/
Httpruntime.appdomainappvirtualpath =/
Request.applicationpath =/
Page.resolveurl ("~") =/
When accessed as a virtual directory (http://localhost:806/web2/url.aspx), the results are as follows:
Copy Code code as follows:
Virtualpathutility.toabsolute ("~/") =/web2/
Httpruntime.appdomainappvirtualpath =/web2
Request.applicationpath =/web2
Page.resolveurl ("~") =/web2/
Using the second and third methods, you also need to do some processing, because the Web site access is/end, while the virtual directory access is not/, do have to make a judgment, a little trouble.
However, there is no problem with using these methods on the page, but if you need to get an absolute path to the site in the Global Application_Start event, you need to use the first 2 methods, and if you use the third method, you will report the following error:
The Request is isn't available in the context
So, you can only take the first 2 ways. For example
Copy Code code as follows:
void Application_Start (object sender, EventArgs e)
{
System.IO.StreamWriter s = new System.IO.StreamWriter (Httpruntime.appdomainapppath + "Log.txt");
S.writeline (Virtualpathutility.toabsolute ("~/"));
S.writeline (Httpruntime.appdomainappvirtualpath);
S.close ();
}