Webアプリやサービスを使っていると、動作しているパスを取得したくなる。ASP.NETの場合、Webアプリの場合には、Server.MapPathなど便利なクラスが用意されているが、WCFサービスで取得する手段探しに難航したので備忘録。
Server.MapPathが使えるのは、UIクラスなのでWebアプリの場合にはPageクラスの中でないと物理パスの取得はできない。自作クラスなどの場合には、HttpServerUtilityアセンブリにMapPathメソッドがあるので、それが使える。
今回はサービス自体がホストされている関係なので、予想が付かない。色々調べていて、ようやく発見。
HostingEnvironment Class
https://msdn.microsoft.com/en-us/library/system.web.hosting.hostingenvironment(v=vs.110).aspx
string sHostPath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;
sHostPath = “C:\inetpub\wwwroot\” な感じで、ホストされている場所のパスが取得できます。
その他に、.ApplicationVirtualPath、.SiteName、.ApplicationIDなどのプロパティもありました。