9

我正在使用 ServiceStack 开发 REST api,并且在默认重定向到元数据页面时遇到问题。我已将该服务发布到公共 IIS7 服务器上的虚拟文件夹“myservice”。

URL“http://mydomain/myservice/whatever”按设计工作,“http://mydomain/myservice/metadata”显示元数据页面(带有正确的链接 url)。

问题是,当访问“http://mydomain/myservice”时,它会重定向到“http:// localhost /myservice/metadata”,而不是“http:// mydomain /myservice/metadata”。

如何配置元数据 URL?

4

2 回答 2

6

ServiceStack中,您可以通过以下方式指定用于所有重定向的 baseUrl AppHost.Configure()

SetConfig(new HostConfig {
    WebHostUrl = "http://mydomain/",
});

覆盖已解析的 URL

您可以通过覆盖ResolveAbsoluteUrl()您的 AppHost 来覆盖 ServiceStack 如何解析 Absolute Url,例如:

public class AppHost : AppHostBase
{
    //...

    public override string ResolveAbsoluteUrl(string virtualPath, IRequest req)
    {
        virtualPath = virtualPath.SanitizedVirtualPath();
        return req.GetAbsoluteUrl(virtualPath);
    }
}
于 2013-01-25T16:32:06.297 回答
1

老问题,但我也遇到了这个问题,并在这里找到了解决方案。

基本上,如果您将服务部署在某处并且在同一台机器上,您在浏览器中打开元数据页面,使用“ http://localhost:XXXX/metadata ”URL,ServiceStack 会记住这一点,直到服务重新启动并继续重定向到无论您尝试从何处打开此页面,此 URL。

因此,重新启动服务并使用其远程地址打开元数据页面,应该没问题。

于 2016-10-12T14:08:07.900 回答