asp.net 获取网站根目录

news/2024/5/14 10:36:38/文章来源:https://blog.csdn.net/weixin_34077371/article/details/94464527

网站在服务器磁盘上的物理路径: HttpRuntime.AppDomainAppPath
虚拟程序路径: HttpRuntime.AppDomainAppVirtualPath

 

任何于Request/HttpContext.Current等相关的方法, 都只能在有请求上下文或者页面时使用. 即在无请求上下文时,HttpContext.Current为null. 而上面提到的方法一直可用.

对于全局Cache对象的访问亦然.

 

 

==================================================================================

示例:输出asp.net 网站路径。

private void responseHtml()
 {
 System.Text.StringBuilder sb = new System.Text.StringBuilder();
 sb.Append(string.Format("当前时间: {0}", Server.HtmlEncode(DateTime.Now.ToString())));
 sb.Append("<br />");
 sb.Append(string.Format("当前请求的虚拟路径: {0}",Server.HtmlEncode(Request.CurrentExecutionFilePath)));
 sb.Append("<br />");
 sb.Append(string.Format("获取当前应用程序的根目录路径: {0}", Server.HtmlEncode(Request.ApplicationPath)));
 sb.Append("<br />");
 sb.Append(string.Format("当前请求的虚拟路径: {0}",Server.HtmlEncode(Request.FilePath)));
 sb.Append("<br />");
 sb.Append(string.Format("当前请求的虚拟路径: {0}",Server.HtmlEncode(Request.Path)));
 sb.Append("<br />");
 sb.Append(string.Format("获取当前正在执行的应用程序的根目录的物理文件系统路径: {0}", Server.HtmlEncode(Request.PhysicalApplicationPath)));
 sb.Append("<br />");
 sb.Append(string.Format("获取与请求的 URL 相对应的物理文件系统路径: {0}", Server.HtmlEncode(Request.PhysicalApplicationPath)));
 sb.Append("<br />");
 Response.Write(sb.ToString());
 }
}


输出:当前时间: 2007-08-30 11:03:49
当前请求的虚拟路径: /aDirectory/Sample/responseHtml.aspx
获取当前应用程序的根目录路径: /aDirectory
当前请求的虚拟路径: /aDirectory/Sample/responseHtml.aspx
当前请求的虚拟路径: /aDirectory/Sample/responseHtml.aspx
获取当前正在执行的应用程序的根目录的物理文件系统路径: E:\Visual Studio 2005\
获取与请求的 URL 相对应的物理文件系统路径: E:\Visual Studio 2005\\aDirectory\

 

 

在ASP.NET编程中经常需要用Request获取url的有关信息.
测试的url地址是http://www.test.com/testweb/default.aspx, 结果如下:

Request.ApplicationPath: /testweb
Request.CurrentExecutionFilePath: /testweb/default.aspx
Request.FilePath: /testweb/default.aspx
Request.Path: /testweb/default.aspx
Request.PathInfo:
Request.PhysicalApplicationPath: E:\WWW\testweb\
Request.PhysicalPath: E:\WWW\testweb\default.aspx
Request.RawUrl: /testweb/default.aspx
Request.Url.AbsolutePath: /testweb/default.aspx
Request.Url.AbsoluteUri: http://www.test.com/testweb/default.aspx
Request.Url.Host: www.test.com
Request.Url.LocalPath: /testweb/default.aspx

当url中带参数时可以使用:
HttpContext.Current.Request.Url.PathAndQuery.ToString()//

本页地址: Request.URL;


上页地址: 
Request.UrlReferrer 
Request.ServerViables["http_referer"] 
Request.RawUrl 
Request.RawUrl.QueryAndPath 
System.IO.Path.GetFileName(Request.FilePath.ToString())

 

 

 

HttpRequest 类型公开了以下成员。

构造函数
名称 说明
HttpRequest 基础结构。初始化 HttpRequest 对象。
页首
方法
名称 说明
BinaryRead 执行对当前输入流进行指定字节数的二进制读取。
Equals 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。)
Finalize 允许 Object 在“垃圾回收”回收 Object 之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
GetHashCode 用作特定类型的哈希函数。 (继承自 Object。)
GetType 获取当前实例的 Type。 (继承自 Object。)
MapImageCoordinates 将传入图像字段窗体参数映射为适当的 x 坐标值和 y 坐标值。
MapPath 已重载。 为当前请求将请求的 URL 中的虚拟路径映射到服务器上的物理路径。
MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
SaveAs 将 HTTP 请求保存到磁盘。
ToString 返回表示当前 Object 的 String。 (继承自 Object。)
ValidateInput 对通过 Cookies 、Form 和 QueryString 属性访问的集合进行验证。
页首
属性
名称 说明
AcceptTypes 获取客户端支持的 MIME 接受类型的字符串数组。
AnonymousID 获取该用户的匿名标识符(如果存在)。
ApplicationPath 获取服务器上 ASP.NET 应用程序的虚拟应用程序根路径。
AppRelativeCurrentExecutionFilePath 获取应用程序根的虚拟路径,并通过对应用程序根使用波形符 (~) 表示法(例如,以“~/page.aspx”的形式)使该路径成为相对路径。
Browser 获取或设置有关正在请求的客户端的浏览器功能的信息。
ClientCertificate 获取当前请求的客户端安全证书。
ContentEncoding 获取或设置实体主体的字符集。
ContentLength 指定客户端发送的内容长度(以字节计)。
ContentType 获取或设置传入请求的 MIME 内容类型。
Cookies 获取客户端发送的 Cookie 的集合。
CurrentExecutionFilePath 获取当前请求的虚拟路径。
FilePath 获取当前请求的虚拟路径。
Files 获取采用多部分 MIME 格式的由客户端上载的文件的集合。
Filter 获取或设置在读取当前输入流时要使用的筛选器。
Form 获取窗体变量集合。
Headers 获取 HTTP 头集合。
HttpMethod 获取客户端使用的 HTTP 数据传输方法(如 GET、POST 或 HEAD)。
InputStream 获取传入的 HTTP 实体主体的内容。
IsAuthenticated 获取一个值,该值指示是否验证了请求。
IsLocal 获取一个值,该值指示该请求是否来自本地计算机。
IsSecureConnection 获取一个值,该值指示 HTTP 连接是否使用安全套接字(即 HTTPS)。
Item 从 Cookies、Form、QueryString 或 ServerVariables 集合中获取指定的对象。
LogonUserIdentity 获取当前用户的 WindowsIdentity 类型。
Params 获取 QueryString、Form、ServerVariables 和 Cookies 项的组合集合。
Path 获取当前请求的虚拟路径。
PathInfo 获取具有 URL 扩展名的资源的附加路径信息。
PhysicalApplicationPath 获取当前正在执行的服务器应用程序的根目录的物理文件系统路径。
PhysicalPath 获取与请求的 URL 相对应的物理文件系统路径。
QueryString 获取 HTTP 查询字符串变量集合。
RawUrl 获取当前请求的原始 URL。
RequestType 获取或设置客户端使用的 HTTP 数据传输方法(GET 或 POST)。
ServerVariables 获取 Web 服务器变量的集合。
TotalBytes 获取当前输入流中的字节数。
Url 获取有关当前请求的 URL 的信息。
UrlReferrer 获取有关客户端上次请求的 URL 的信息,该请求链接到当前的 URL。
UserAgent 获取客户端浏览器的原始用户代理信息。
UserHostAddress 获取远程客户端的 IP 主机地址。
UserHostName 获取远程客户端的 DNS 名称。
UserLanguages 获取客户端语言首选项的排序字符串数组。

 

 

1.Request.ApplicationPath->当前应用的目录
楼主没有接触过jsp吧,如果接触过jsp就会非常清楚,ApplicationPath指的是当前的application(应用程序)的目录
对应的--例如我的服务器上有两个web应用域名都是MySite.com 一个映射到目录MySite.com/1/ 另一个影射到 http://MySite.com/2/
那么 MySite.com/1/就是第一个应用的ApplicationPath 同理 MySite.com/2/就是第二个应用的ApplicationPath

2.Request.FilePath->对应于iis的虚拟目录
如 URL http://MySite.com/1/index.html/pathinfo
FilePath = /1/index.html

3.Request.Path->当前请求的虚拟路径
Path 是 FilePath 和 PathInfo 尾部的串联。例如 URL http://MySite.com/1/index.html/pathinfo
那么Path = /1/index.html/pathinfo

4.Request.MapPath(string url)->将url映射为iis上的虚拟目录
这个目录都是相对于application的根目录的
于Server.MapPath相比,不会包含类似c:/这样的路径
可以理解为是相对路径(对比的Server.MapPath就是绝对路径)

5.Server.MapPath(string url)->将url映射为服务器上的物理路径
例如 http://MySite.com/1/index.html 假设你的应用程序在c:/iis/MySite中
那么 就是 c:/iis/MySite/1/index.html

 

 

Requst.FilePath获取当前请求的虚拟路径。FilePath 属性不包含 PathInfo 尾部。例如,对于 URL http://www.contoso.com/virdir/page.html/tail,FilePath 值为 /virdir/page.html。

===============================================================================================================================

Request.Path 获取当前请求的虚拟路径。Path 是 FilePath 和 PathInfo 尾部的串联。例如,对于 URL http://www.contoso.com/virdir/page.html/tail,Path 为 /virdir/page.html/tail。

===============================================================================================================================

Request.MapPath 方法将指定的虚拟路径映射到物理路径。
下面的代码示例使用 MapPath 方法将虚拟路径转换为服务器上完全限定的物理路径。此示例包括两个部分:

.aspx 页映射路径、读取文件并显示读取操作的结果。

UpperCaseFilterStream 类,该类将通过它传递的所有字符都更改为大写。

示例的第一部分显示如何使用 MapPath 方法将虚拟路径转换为完全限定的物理路径。之后,将此物理路径传递给 StreamReader 对象,该对象包含该文件的内容。然后,调用 Write 方法,以在页面上显示文件的内容。Filter 属性用于将筛选器附加到响应流,该响应流使页面上显示的文本全部大写。

转载于:https://www.cnblogs.com/rongnianwu/archive/2012/11/26/2789594.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_815395.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分享40款效果非常漂亮的 HTML5 CSS3 网站模板,模板免费下载

HTML5 作为下一代网页语言&#xff0c;加入中众多更具语义的标签&#xff0c;例如video、audio、section、article、header 和 nav 等。而 CSS3 作为 CSS 的下一代版本&#xff0c;同样引入了很多很酷的属性&#xff0c;以前很多需要 JavaScript 才能实现的复杂效果&#xff0c…

小网站到大网站的发展历程

为什么80%的码农都做不了架构师&#xff1f;>>> 开始都在一台服务器上&#xff0c;应用服务器&#xff0c;数据库服务器&#xff0c;文件服务器&#xff0c;访问量大了&#xff0c;内存不够用了&#xff0c;把数据库服务器踢出去&#xff0c;有钱的话可以分成3台&a…

秒杀全网!研发、运营必备实用工具网站

目录 1、搜索引擎 2、PPT 3、图片操作 4、文件共享 5、招聘求职 6、程序员面试题库 7、办公、开发软件 8、高清图片、视频素材网站 9、项目开源 10、算法 11、在线工具宝典大全 12、音乐 13、神辅助工具 14、语音处理 15、大数据 16、电子书 程序员开发需要具备良好的信息检索…

java开发web网站的路由设计_理解Web路由(浅谈前后端路由与前后端渲染)

1.什么是路由?在Web开发过程中&#xff0c;经常会遇到『路由』的概念。那么&#xff0c;到底什么是路由&#xff1f;简单来说&#xff0c;路由就是URL到函数的映射。路由的概念最开始是由后端提出来的&#xff0c;在以前用模板引擎开发页面的时候&#xff0c;是使用路由返回不…

[Erlang24]使用zotonic搭建网站记录

zotonic的搭建网站(blog)记录&#xff1a; zotonic:用Erlang做的一个web 框架&#xff1a;和wordpress 类似&#xff0c;但是官网称比PHP CMS要快10倍以上先看看我的成果&#xff1a;正弦波 localhost&#xff1a;本地回环地址 443&#xff1a;安全服务端口&#xff0c;好记&am…

网站定位之---根据IP获得区域

记得以前做一个培训机构网站时候需要定位&#xff0c;那时候用的搜狐的api&#xff0c;不是很精准。 demo:https://github.com/dunitian/LoTCodeBase/tree/master/NetCode/3.常用技能/06.Position/01.IPToPosition 后来做电商的时候用的新浪的api&#xff0c;感觉还行&#xff…

在阿里云centOS环境下搭建基于thinkphp的网站

Step1:购买服务器以及配置选择 作为学生党的优惠&#xff0c;30块3个月的服务器使用时间&#xff08;为了成为未来的拍黄片导演怎么口以不舍得花钱&#xff09; 云服务器ECS 学生特惠 基本按照一开始给你的配置就好了&#xff0c;除了公共镜像那里选择&#xff0c;看个人需求吧…

大型网站架构系列:负载均衡详解(1)

面对大量用户访问、高并发请求&#xff0c;海量数据&#xff0c;可以使用高性能的服务器、大型数据库&#xff0c;存储设备&#xff0c;高性能Web服务器&#xff0c;采用高效率的编程语言比如(Go,Scala)等&#xff0c;当单机容量达到极限时&#xff0c;我们需要考虑业务拆分和分…

大型分布式网站架构技术总结

2019独角兽企业重金招聘Python工程师标准>>> 本文是学习大型分布式网站架构的技术总结。对架构一个高性能&#xff0c;高可用&#xff0c;可伸缩&#xff0c;可扩展的分布式网站进行了概要性描述&#xff0c;并给出一个架构参考。一部分为读书笔记&#xff0c;一部分…

夺命雷公狗ThinkPHP项目之----企业网站28之网站前台左侧导航的实现

我们基于刚才在model层的找顶级分类的代码在进行修改即可&#xff1a; <?php namespace Home\Controller; use Think\Controller; class CommonController extends Controller {function __construct(){//继承父类的构造方法&#xff0c;所以网站在执行的时候会先执行他par…

大型网站及其演进架构之一

大型网站&#xff1a;网站是用来访问的&#xff0c;访问量大&#xff0c;数据量大&#xff0c;即海量数据高并发的访问&#xff0c;就是大型网站。 以交易系统为例&#xff0c;简单介绍下网站的演进过程&#xff0c;比较简陋&#xff0c;权当扫盲。 交易系统包含三个部分&…

大型网站及其演进架构之二

【前言】 我们以 Java Web 为例&#xff0c;来搭建一个简单的电商系统&#xff0c;看看这个系统可以如何一步步演变。 该系统具备的功能&#xff1a; 用户模块&#xff1a;用户注册和管理 商品模块&#xff1a;商品展示和管理 交易模块&#xff1a;创建交易和管理 【正文】 …

SEO关键词外包优化,关键词如何定义?

SEO外包优化&#xff0c;最重要的一项就是找到核心关键词&#xff0c;每个关键词都肩负着自己的责任。很多品牌投放了可观的资源&#xff0c;却没有带来很好的流量效果&#xff0c;而有些的品牌定位的关键词却能帮助企业成功出圈&#xff0c;并有长期曝光的效果。TOM品牌营销是…

亿级流量网站架构设计之高可用、高并发知识栈

下图是构建亿级流量网站的高可用和高并发需要掌握的知识图谱&#xff0c;来自《亿级流量网站架构核心技术 跟开涛学搭建高可用高并发系统》

搜索引擎推广优化排名,TOM搜索引擎seo公司,助你3天排名百度首页

中国搜索引擎市场&#xff0c;覆盖95%网民&#xff0c;日均搜索用户超过7亿&#xff0c;其中百度&#xff1a;约占比75%&#xff0c;搜狗约占比13%&#xff0c;360约占比3%。在如此大的流量池中&#xff0c;搜索引擎前三页的流量占比能到98%。所以在企业网络推广营销的过程中&a…

搜索引擎优化,SEO关键词快速排名方法有哪些?

搜索引擎SEO是企业宣传中常用的营销方式&#xff0c;凭借巨大的用户流量、精准的搜索需求、快速的信息收录等特点&#xff0c;得到了企业的信赖。而对于一些传统行业及初步创业阶段的企业&#xff0c;往往面临着无从下手的窘境。究竟如何在百度上推广企业产品展现在首页&#x…

企业网络推广公司,SEO排名优化有效获客

企业服务行业的产品及服务复杂度高、参与决策的人数多、决策周期长&#xff0c;采购方不同决策者的角色及诉求侧重不同&#xff0c;在用户触点及传递内容上应根据决策者的角色进行匹配。 企业推广产品 用户使用产品的通常流程是从了解品牌信息、某个产品吸引到他、用户主动认识…

HTML5+CSS3 效果网站集合

1、jquery插件库 HTML5制作3D樱花漫天飞舞 http://www.jq22.com/jquery-info3547 2、17素材网 http://www.17sucai.com/pins/tag/532.html 3、jquery之家 http://www.htmleaf.com/html5/ 心怀梦想,勿忘初心

[分布式][高并发]千万级用户的大型网站,应该如何设计其高并发架构?

目录 &#xff08;1&#xff09;单块架构 &#xff08;2&#xff09;初步的高可用架构 &#xff08;3&#xff09;千万级用户量的压力预估 &#xff08;4&#xff09;服务器压力预估 &#xff08;5&#xff09;业务垂直拆分 &#xff08;6&#xff09;用分布式缓存抗下读…

企业邮箱网站是什么,如何在企业邮箱网站里登录企业邮箱?

对于很多外贸企业来说&#xff0c;最常用的和国外客户交流的工具应该就是企业邮箱了。因为企业邮箱比起个人邮箱来说&#xff0c;收发邮件更稳定&#xff0c;安全性也更高&#xff0c;且邮箱容量会更大。如果还没有企业邮箱账号的话&#xff0c;要怎么注册邮箱呢&#xff1f;其…