1

ServiceStackRazorが追加されたServiceStackプロジェクトがあります。サイトのルートに移動しようとすると、/metadataにリダイレクトされます。

これは私の開発マシンでは発生せず、ホストされた環境(AppHarbor)でのみ発生します。

プロジェクトのルートにDefault.cshtmlがあります。

他のURLへの移動は正常に機能します:/default1.cshtml/myservicewithviews

AppHostでをいじってみましたDefaultRedirectPathが、役に立ちませんでした。

強制しようとするとDefaultRedirectPath = "default.cshtml"、リダイレクトループが発生します。これは理にかなっています。

これを引き起こしているのは何ですか?

4

1 に答える 1

2

AppHarborは、プロジェクトのビルド時に「コンテンツ」とマークされたファイルのみを公開します(AppHbFAQ)。このファイルは、コンテンツとしてマークされていない唯一のファイルであり、ホストされた環境でのみこれが発生し、他のすべてのコンテンツにアクセスできた理由です。

デフォルトのドキュメントを検出しないと、ServiceStackはRedirectHttpHandlerを/metadataに設定します-ここに表示されます

もう1つの注目すべき点は、AppHarborのロードバランサーにより、応答リダイレクトなどを実行するときに、内部ポート番号がServiceStackURLに表示されることです。

この問題を修正するには、Web.Configに次を追加します。

<appSettings>
    <!-- AppHarbor Setting to stop AppHb load balancer internal port numbers from showing up in URLs-->
    <add key="aspnet:UseHostHeaderForRequestUrl" value="true" />
</appSettings>

AppHarbor構成パネルでこの設定を構成することもできます。

于 2013-01-21T07:34:08.127 に答える