即使Default.cshtml存在,ServiceStack也始终默认重定向到/ metadata

时间:2013-01-19 07:31:19

标签: servicestack appharbor

我添加了ServiceStack Razor的ServiceStack项目。每当我尝试导航到网站的根目录时,我都会被重定向到/ metadata。

这不会发生在我的开发机器上,仅在我的托管环境(AppHarbor)中。

我的项目根目录中有一个Default.cshtml。

导航到其他网址可以正常工作:/default1.cshtml/myservicewithviews

我已经尝试在我的AppHost中弄乱DefaultRedirectPath,但这没有帮助。

尝试强制它DefaultRedirectPath = "default.cshtml"会导致重定向循环。这是有道理的。

造成这种情况的原因是什么?

1 个答案:

答案 0 :(得分:2)

AppHarbor仅在构建项目(AppHb FAQ)时发布标记为“内容”的文件。此文件是唯一未标记内容的文件,以及为什么我只在托管环境中遇到此文件并可以访问所有其他内容。

未检测到默认文档会导致ServiceStack将RedirectHttpHandler设置为/ metadata - shown around here

另一个值得注意的问题是AppHarbor的负载均衡器会在执行响应重定向等操作时导致其内部端口号显示在ServiceStack URL中。

要解决此问题,请将以下内容添加到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配置面板中配置此设置。