アプリケーションが現在ホストしている完全な仮想パスを知る方法を教えてください。たとえば:ASP.NETアプリケーションの完全な仮想パスを取得する方法
http://www.mysite.com/myApp
または
http://www.mysite.com/myApp/mySubApp
は私がのHttpRequestのアプリケーションパスを知っているが、それだけで私のアプリケーションが現在ホストされているフォルダ名を返しますが、どのように私は最初の部分を得るのですか?
アプリケーションが現在ホストしている完全な仮想パスを知る方法を教えてください。たとえば:ASP.NETアプリケーションの完全な仮想パスを取得する方法
http://www.mysite.com/myApp
または
http://www.mysite.com/myApp/mySubApp
は私がのHttpRequestのアプリケーションパスを知っているが、それだけで私のアプリケーションが現在ホストされているフォルダ名を返しますが、どのように私は最初の部分を得るのですか?
パスのドメイン名部分は、実際にアプリケーション自体のプロパティではなく、要求元のURLに依存します。さまざまなホスト名から単一のWebサイトにアクセスできる可能性があります。 現在のリクエストに関連付けられたドメイン名を取得し、現在のアプリケーションの仮想パスと一緒に、あなたができるには:
Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath
技術的には、「アプリケーション」IISとRequest.ApplicationPath
リターンで定義された仮想ディレクトリですまさにそれ。
VirtualPathUtility.GetDirectory(Request.Path)
ASP.NETは、それが定義されていない場合は、より大きなアプリケーションからサブアプリケーションを区別するために、どのようには考えていません:あなたは現在要求が処理されているフォルダを取得したい場合は、これを行うことができますIISの仮想ディレクトリとして使用します。 IISに登録しなくても、すべてのことを単一のアプリケーションとして見るだけです。
(それを試していない)、これを試してみてくださいあなたのパスの値を "不明"にする
通常、パスの検索には、Rick Strahl cle私のためのものを手に入れよう:http://www.west-wind.com/weblog/posts/269.aspx
あなたが望むものを得るためには、ミックスして一致させる必要があります。
リンクは –
Request.Url
それは下の画像を参照してください、あなたが使用することを検討するかもしれないいくつかのポイントが含まれています。以下のコードは、目的を解決する
、しかし、あなたは2のためのビットのチューニングをしなければなりませんシナリオの種類:
ウェブアプリケーション内の仮想アプリケーションとしてホストされます。
HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority)+ HttpRuntime.AppDomainAppVirtualPath;
.NET 4。5
VirtualPathUtility.ToAppRelative(path)
を破壊され、アプリケーションはIISの仮想ディレクトリがあるが、私たちは要求されているページがいくつかのフォルダ内にあるが、私たちは、仮想ディレクトリではなく、フォルダを含むパスをしたい場合は、これをどのように行うには? – Krunal
@Krunal [HttpRuntime.AppDomainAppVirtualPath](https://msdn.microsoft.com/en-us/library/system.web.httpruntime.appdomainappvirtualpath(v = vs.110).aspx)またはRequest.ApplicationPath – jproch