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

标签 servicestack

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

任何指示都会有帮助。

最佳答案

您只能通过以下方式访问 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

关于servicestack - 获取独立于托管的 ServiceStack 应用程序的应用程序物理和虚拟根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15238341/

相关文章:

ServiceStack.Razor CustomHttpHandler 不显示 HttpStatusCode.BadRequest

c# - 使用 ServiceStack 隐藏输出成员

serialization - 用于反序列化的 JsConfig.EmitLowercaseUnderscoreNames

azure - Azure 上的 ServiceStack v4.0.24.0 Google OAuth 失败并显示 502

serialization - 使用 ServiceStack Redis/TextSerializer 序列化父类字段

ServiceStack AutoQuery 关于丢失属性的警告

authentication - Servicestack、Xamarin 和身份验证

http - 在 ServiceStack 中执行重定向

c# - 如何使用 ServiceStack.net Web 服务在 AppHarbor 上配置 SSL

ServiceStack Dictionary DTO Dictionary<string, string> 数据类型反序列化