9

ServiceStackを使用してRESTAPIを開発していますが、メタデータページへのデフォルトのリダイレクトに問題があります。パブリックIIS7サーバー上の仮想フォルダー「myservice」にサービスを公開しました。

URL「http:// mydomain / myservice / whatever」は設計どおりに機能し、「http:// mydomain / myservice / metadata」はメタデータページを(正しいリンクURLで)表示します。

問題は、「http:// mydomain / myservice」にアクセスすると、「http:// mydomain / myservice /metadata」ではなく「http:// localhost / myservice/metadata」にリダイレクトされることです。

メタデータのURLを構成するにはどうすればよいですか?

4

2 に答える 2

6

ServiceStackでは、 AppHost.Configure():で指定することにより、すべてのリダイレクトに使用するbaseUrlを指定できます。

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

解決されたURLのオーバーライド

ResolveAbsoluteUrl()AppHostでオーバーライドすることにより、ServiceStackが絶対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 に答える