Я получаю пустую страницу при развертывании приложения MVC на IIS

Я понял, как решить эту проблему, добавив foreach в каждом раскрывающемся списке полей. Спасибо @HastaDhana за то, что нашли время ответить на мой вопрос:)

17
задан harriyott 17 October 2014 в 10:26
поделиться

7 ответов

Я решил проблему, главной проблемой были различные версии платформы MVC. Рабочий сервер имел Бету MVC, в то время как я установил MVC RC1. Таким образом, как только я установил RC1 на сервере, а также запустил mvc дополнительные регистрационные скрипты, все работало спасибо за Ваших парней справки

1
ответ дан 30 November 2019 в 13:13
поделиться

Вы также получите пустую страницу, когда у Вас будет установка обработки ошибок в Вашем global.asax, и что-то универсальное является неправильным (как блок, который не мог быть найден).

при отключении его в global.asax Вы видите ошибку сервера. Не забывайте включать его снова после исправления тех начальных ошибок.

protected void Application_Error(object sender, EventArgs e)
{
    Exception exception = Server.GetLastError();
    RouteData routeData = new RouteData();
    routeData.Values.Add("controller", "ErrorController");
    routeData.Values.Add("action", "HandleTheError");
    routeData.Values.Add("error", exception);

    Response.Clear();
    Server.ClearError();

    IController errorController = new ErrorController();
    errorController.Execute(new RequestContext(
        new HttpContextWrapper(Context), routeData));
}
19
ответ дан 30 November 2019 в 13:13
поделиться

Какова серверная среда? Если это не IIS7/Server 2008 существуют другие тонкие настройки, которые необходимо сделать, чтобы заставить маршрутизацию работать правильно, хотя, если это так, Вы, вероятно, получили бы ошибочную страницу, не пустую страницу.

0
ответ дан 30 November 2019 в 13:13
поделиться

Если это - рабочий сервер, который имеет проблему, это - вероятно, разрешения роли. Необходимо удостовериться, что все папки и подают заявку, использует, позволяют читать (и в некоторых случаях записать, регистрируется ли использование) к ролевым идентификационным данным, которые использует IIS.

Обычно идентификационные данные, которые использует IIS, находятся в Свойствах веб-сайта-> Безопасность каталога-> Редактирование (Управление аутентификацией и управление доступом). Если Вы не хотите позволять какому-либо компьютеру в Вашей сети получать доступ к веб-сайту затем, необходимо, вероятно, выключить, "Включают анонимный доступ". Если Вы действительно хотите позволить это, хотя, это будет идентификационными данными, необходимо предоставить доступ к в папках веб-приложения и файлах. Иначе Вы, возможно, должны предоставить доступ к роли, которая содержит пользовательские идентификационные данные, Вы хотите иметь доступ.

0
ответ дан 30 November 2019 в 13:13
поделиться

От взглядов его я ожидал бы, что первый маршрут работал бы, если бы Вы шли в URL как/Home.aspx, но если Вы просто идете в / URL затем, ASP.net не знает, как обработать URL. Это попытается соответствовать на страницах значений по умолчанию IIS как index.html, default.aspx, index.aspx, и т.д. Если ничто не будет найдено затем, запрос не добирается нигде. Попытка создания default.aspx (или любой другой индексный файл в маршруте), затем в page_load делает response.redirect("~/Home.aspx").

, Если бы это не работает, я проверил бы этот источник . Одна из главных причин IIS 6 и MVC не играет по правилам, то, что IIS 6 по умолчанию не имеет подстановочного знака * отображенным на ASP.net dll.

я уверен, что это - способ, которым настроен сервер продукта, можно ли сделать какое-либо сравнение между экземпляром XP и производством?

0
ответ дан 30 November 2019 в 13:13
поделиться

У Вас есть Обработчики HTTP и Модули определенными в web.config на рабочем сервере?

    <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
        <add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </httpHandlers>
    <httpModules>
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </httpModules>

На IIS6, URL должны содержать .mvc (например,/Products.mvc/ListAll). Проверьте эти руководства на надлежащую конфигурацию IIS 6 и .mvc дополнительное обходное решение:

Развертывающийся ASP.NET MVC к IIS 6

Используя ASP.NET MVC на IIS 6 без.MVC Расширения

0
ответ дан 30 November 2019 в 13:13
поделиться

Как другое возможное решение:

я не развертывался в течение приблизительно одного месяца, но обновил свою Visual Studio несколькими незначительными выпусками. Несовместимость вползла промежуточная Основа VS и некоторые мои пакеты Nuget. Обновленный мои пакеты, удостоверился, что убрал (и удалить bin/obj - даже при том, что он первоначально не решил проблему), и затем повторно развернутый. Работавший после этого.

0
ответ дан 30 November 2019 в 13:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: