web 项目中的路径问题

HttpRuntime.AppDomainAppPath为程序运行时的实际路径

 

 

C#取得Web程序和非Web程序的根目录的N种取法

几种方法如下:
非Web程序

1.AppDomain.CurrentDomain.BaseDirectory //浏览器安装路径
2.Environment.CurrentDirectory

3.HttpRuntime.BinDirectory

The path to the current application's/bin directory.

Web程序
HttpCurrent.Context.Server.Mappath();

---------------------------------------------------------------

HttpContext.Current

返回当前请求的 HttpContext 对象。如此我们就可以直接访问Request、Response、Session、Application等对象,和Page中访问等同。
我们无需再将Page用参数的方式传递到我们的类库对象中。

HttpContext.Current.Session["name"] = "猪八戒";
string name = HttpContext.Current.Request.Param["name"];
HttpContext.Current.Response.Write("猪八戒好吃懒做!");


HttpRuntime

为当前应用程序提供一组 ASP.NET 运行时服务。我们可以通过这个类获得当前ASP.NET工程的一些信息。

HttpRuntime.AppDomainAppVirtualPath : 项目虚拟路径
HttpRuntime.AppDomainAppPath : 项目物理路径
HttpRuntime.BinDirectory : BIN目录物理路径
HttpRuntime.ClrInstallDirectory : CLR安装路径(可以用来获取CLR版本号)

Response.Write(string.Format("AppDomainAppId: {0}<br>", HttpRuntime.AppDomainAppId));
Response.Write(string.Format("AppDomainAppPath: {0}<br>", HttpRuntime.AppDomainAppPath));
Response.Write(string.Format("AppDomainAppVirtualPath: {0}<br>", HttpRuntime.AppDomainAppVirtualPath));
Response.Write(string.Format("AppDomainId: {0}<br>", HttpRuntime.AppDomainId));
Response.Write(string.Format("AspInstallDirectory: {0}<br>", HttpRuntime.AspInstallDirectory));
Response.Write(string.Format("BinDirectory: {0}<br>", HttpRuntime.BinDirectory));
Response.Write(string.Format("ClrInstallDirectory: {0}<br>", HttpRuntime.ClrInstallDirectory));
Response.Write(string.Format("CodegenDir: {0}<br>", HttpRuntime.CodegenDir));
Response.Write(string.Format("IsOnUNCShare: {0}<br>", HttpRuntime.IsOnUNCShare.ToString()));
Response.Write(string.Format("MachineConfigurationDirectory: {0}<br>", HttpRuntime.MachineConfigurationDirectory));


输出:
AppDomainAppId: /LM/W3SVC/1/Root/Learn.Test.Web
AppDomainAppPath: D:/System/My Documents/Visual Studio Projects/Learn.Test/Learn.Test.Web/
AppDomainAppVirtualPath: /Learn.Test.Web
AppDomainId: /LM/W3SVC/1/Root/Learn.Test.Web-9-127652564154400560
AspInstallDirectory: C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322
BinDirectory: D:/System/My Documents/Visual Studio Projects/Learn.Test/Learn.Test.Web/bin/
ClrInstallDirectory: c:/windows/microsoft.net/framework/v1.1.4322
CodegenDir: C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/learn.test.web/41680132/7c880883
IsOnUNCShare: False
MachineConfigurationDirectory: c:/windows/microsoft.net/framework/v1.1.4322/Config

 

HostingEnvironment

string siteName = HostingEnvironment.SiteName;
string appPath = HostingEnvironment.ApplicationVirtualPath;
string phyPath = HostingEnvironment.ApplicationPhysicalPath;
string adminPath = HostingEnvironment.MapPath("~/Admin");

ApplicationManager.GetApplicationManager().ShutdownApplication(HostingEnvironment.ApplicationID);

 


灵活运用技巧:

当使用非WEB程序或使用异步调用时,想要取得根目录下的某目录可以使用如下代码:

HttpRuntime.BinDirectory + "../目录名";

你可能感兴趣的:(Web,浏览器,session,String,application,asp.net)