ServiceStack元数据页面的默认URL不正确

时间:2013-01-25 11:42:32

标签: metadata servicestack

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

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

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

如何配置元数据网址?

2 个答案:

答案 0 :(得分:6)

ServiceStack中,您可以通过在AppHost.Configure()中指定所有重定向来指定要用于所有重定向的baseUrl:

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

覆盖已解决的网址

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

public class AppHost : AppHostBase
{
    //...

    public override string ResolveAbsoluteUrl(string virtualPath, IRequest req)
    {
        virtualPath = virtualPath.SanitizedVirtualPath();
        return req.GetAbsoluteUrl(virtualPath);
    }
}

答案 1 :(得分:1)

旧问题,但我也遇到了这个问题并找到了解决方案here

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

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