获取独立于托管的ServiceStack应用程序的应用程序物理和虚拟根

时间:2013-03-06 03:17:15

标签: servicestack

我有一个FileSystemBlobProvider需要将物理路径映射到虚拟路径,反之亦然。我还需要访问主机名(我需要在给定app相对路径的情况下生成公共URL)。理想情况下,这应该独立于托管(Asp.Net或自托管)。

任何指针都会有所帮助。

1 个答案:

答案 0 :(得分:3)

您只能在HTTP请求的上下文中访问主机名称:

base.Request.Headers["Host"] 

对反向代理也很敏感。如果你需要它,我会在你的Web.config中添加一个用户定义的条目。

根据您的使用情况,您还可以访问IHttpRequest中的虚拟和物理路径:

base.Request.PathInfo
base.Request.ApplicationFilePath

ServiceStack还包括VirtualFileSystem,您可以通过以下方式访问:

EndpointHost.VirtualPathProvider

您可以查询以获取ServiceStack所在的根目录的虚拟和物理路径:

EndpointHost.VirtualPathProvider.RootDirectory.VirtualPath
EndpointHost.VirtualPathProvider.RootDirectory.RealPath