我有一个 FileSystemBlobProvider 需要将物理路径映射到虚拟路径,反之亦然。我还需要访问主机名(我需要在给定应用程序相对路径的情况下生成公共 url)。理想情况下,这应该独立于托管(Asp.Net 或自托管)。
任何指针都会有所帮助。
我有一个 FileSystemBlobProvider 需要将物理路径映射到虚拟路径,反之亦然。我还需要访问主机名(我需要在给定应用程序相对路径的情况下生成公共 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