Ответ 1
Какая версия IIS работает на вашем хосте? Одна вещь, которую следует попробовать, - поместить файл фиктивного default.aspx в корневую папку (это не будет использоваться, когда MVC работает, но может избавиться от этой проблемы).
Я только что развернул свой веб-сайт asp.net mvc-2 на сервере (используя dotnetpanel). Но получение этой ошибки
A default document is not configured for the requested URL, and directory browsing is not enabled on the server.
Какие настройки мне нужны? Его хостинг-сервер на основе dotnetpanel.
Какая версия IIS работает на вашем хосте? Одна вещь, которую следует попробовать, - поместить файл фиктивного default.aspx в корневую папку (это не будет использоваться, когда MVC работает, но может избавиться от этой проблемы).
Отмеченный ответ поможет вам устранить ошибку, но не будет работать MVC. Ответ на проблему заключается в том, чтобы добавить эту строку в файл web.config в файле system.webServer:
<modules runAllManagedModulesForAllRequests="true" />
Следующее относится к IIS 7
Ошибка пытается сказать вам, что одна из двух вещей не работает должным образом:
См. следующую ссылку для получения инструкций по диагностике и устранению вышеуказанных проблем.
http://support.microsoft.com/kb/942062/en-us
Если ни одна из этих проблем не является проблемой, необходимо проверить еще раз, чтобы убедиться, что пул приложений, настроенный для вашего веб-сайта (в диспетчере IIS выберите свой веб-сайт и нажмите "Основные параметры" в крайнем правом углу), настроен с тем же Версия платформы .Net (в диспетчере IIS в разделе "Пулы приложений") в качестве targetFramework, настроенного в вашем файле web.config, например:
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime targetFramework="4.0" />
</system.web>
Я не уверен, почему это приведет к появлению такого, казалось бы, не связанного сообщения об ошибке, но это сработало для меня.
Я столкнулся с той же ошибкой, опубликованной OP, при попытке отладки моего веб-сайта ASP.NET с помощью сервера IIS Express. IIS Express используется Visual Studio для запуска веб-сайта, когда мы нажимаем F5.
Откройте обозреватель решений в Visual Studio → Разверните узел проекта веб-приложения (в моем случае StudentInfo
) → Щелкните правой кнопкой мыши веб-страницу, которую вы хотите загрузить при запуске вашего сайта (в моем случае StudentPortal.aspx
) → Выберите опцию Set as Start Page
из контекстного меню, как показано ниже. Это начало работать со следующего запуска.
Основная причина: я пришел к выводу, что начальная страница, которая является документом по умолчанию для веб-сайта, была неправильно настроена или как-то испортилась во время разработки.
Вы добавляете маршрут по умолчанию к этому классу?
public class RouteConfig {
public static void RegisterRoutes (RouteCollection routes) {`
//"HomePage" is the root view of your app
routes.MapRoute (
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new {
controller = "Home", action = "HomePage", id = UrlParameter.Optional
}
);
}
}
` После этого в Global.asax.cs добавьте эту строку в метод Application_Start():
RouteConfig.RegisterRoutes (RouteTable.Routes);
У меня была эта проблема после того, как я сделал обновление с MVC4 до MVC5 после this post, и я прокомментировал эту строку по той причине, забыл.
Надеюсь, это поможет!
Это также может произойти, если вы делаете что-то глупое (как и я) и поместите api url в "Project Url" (например, http://localhost:59088/api/Product) на вкладке "Свойства проекта- > Веб" вместо указания его в текстовом поле "Конкретная страница". Это заставляет Visual Studio идти вперед и создавать APP под названием ProjectName/api/Product, и это будет ожидать страницу по умолчанию. Единственный способ отменить это - перейти в C:\Program Files (x86)\IIS Express и использовать appcmd.exe, чтобы удалить его так:
>.\appcmd.exe delete APP "ProjectName/api/Product"
Убедитесь, что у вас есть страница по умолчанию с именем index.aspx, а не что-то вроде main.aspx или home.aspx. А также убедитесь, что все ваши свойства в вашем классе совпадают точно с таблицей в базе данных. Удалите все свойства, которые не синхронизируются с базой данных. Это решило мою проблему!!:)
Преступник может заключаться в том, что Global.asax помещен в неправильный каталог внутри проекта mvc. В моем случае это было помещено под /Views, но мне пришлось перемещать его, должно быть, было помещено в корневую папку проекта.
В вашем случае вы можете быть абсолютно противоположной - выполните некоторые тесты и убедитесь сами.
В моем случае мне пришлось установить пакет Microsoft.Owin.Host.SystemWeb
.
Я получал то же сообщение, что и вы, но потом заметил, что не могу даже достичь точки останова в Startup.cs
которая затем пропустила меня в этот поток SO.
У меня была эта проблема в приложении WebForms, ошибка ясно говорит о том, что A default document is not configured
, и это было верно в моем случае, документ по умолчанию не был настроен. Что мне помогло, так это то, что я нажал на свой сайт, а на средней панели в iis есть опция с именем Default Document
. В Default Document
вы должны проверить, существует ли страница приложения по умолчанию или нет.
По умолчанию страница моего приложения была index.aspx, и ее не было в окне iis Default Document
. Поэтому я сделал новую запись в index.aspx, и она начала работать.