2013-01-19 1 views
1

У меня есть проект ServiceStack с ServiceStack Razor. Каждый раз, когда я пытаюсь перейти к корню сайта, я перенаправляюсь в/metadata.ServiceStack always Default Переадресация на/метаданные, даже если Default.cshtml присутствует

Это не происходит на моей машине dev, только в моей размещенной среде (AppHarbor).

У меня есть файл Default.cshtml в корне моего проекта.

Переход на другие сайты работают отлично: /default1.cshtml, /myservicewithviews

Я пытался баловаться с DefaultRedirectPath в моей AppHost, но это не помогло.

Попытка заставить его DefaultRedirectPath = "default.cshtml" привести к переходу. Это имеет смысл.

Что вызывает это?

ответ

2

AppHarbor только публикует файлы, отмеченные «Контент» при строительстве проектов (AppHb FAQ). Этот файл был единственным, не помеченным контентом, и почему я только это испытывал в своей размещенной среде и мог получить доступ ко всему другому контенту.

Не обнаружение документа по умолчанию вызывает ServiceStack установить RedirectHttpHandler в/метаданных - shown around here

Еще одним примечательной точкой является то, что балансировки нагрузки AppHarbor причиняет их внутренние номера портов, чтобы показать в ServiceStack URL-адресах при выполнении таких вещей, как Response Redirects ,

Чтобы устранить эту проблему, необходимо добавить следующие строки в 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 конфигурации панели.