Как устранить ошибку "Ошибка сервера в ошибке" / "Приложение"?

Я пытаюсь развернуть приложение asp.net на нашем сервере, пока я получаю следующую ошибку.

Server Error in '/' Application. 
________________________________________
Configuration Error 
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 
Parser Error Message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level.  This error can be caused by a virtual directory not being configured as an application in IIS.
Source Error: 
Line 63:             ASP.NET to identify an incoming user. 
Line 64:         -->
Line 65:                  <authentication  mode="Windows"/>
Line 66:                  <!--<forms loginUrl="~/SCR.UI/Login1.aspx"/>
Line 67:                  </authentication>-->
Source File: D:\BarclaysPayamentManagementSystem\scr.ui\web.config    Line: 65

В чем причина и как его решить?

Пожалуйста, помогите


Ответы

Ответ 1

Вы можете получить эту ошибку при попытке просмотреть приложение asp.net.

Отладочная информация показывает, что "эта ошибка может быть вызвана тем, что виртуальный каталог не настроен как приложение в IIS".

Однако эта ошибка возникает, главным образом, из 2 сценариев.

  • При создании нового веб-приложения с использованием visual studio.net он автоматически создает виртуальный каталог и настраивает его как приложение. Однако, если вы вручную создаете виртуальный каталог и не настроен как приложение, вы не сможете просматривать приложение и можете получить вышеуказанную ошибку. Отладочная информация, полученная вами, как указано выше, применима к этому сценарию.

Чтобы решить эту проблему, щелкните правой кнопкой мыши по виртуальному каталогу - выберите свойства, а затем нажмите "Создать" рядом с меткой "Приложение" и текстовым полем. Он автоматически создаст "приложение", используя имя виртуального каталога. Теперь приложение может быть доступно.

  1. Когда у вас есть подкаталоги в вашем приложении, вы можете иметь файл web.config для подкаталога. Однако есть определенные свойства, которые нельзя установить в файле web.config подкаталога, таком как аутентификация, состояние сеанса (вы можете увидеть, что сообщение об ошибке показывает номер строки, в которой аутентификация или состояние сеанса объявлены в файле web.config подкаталога). Причина в том, что эти параметры нельзя переопределить на уровне подкаталогов, если только подкаталог также не настроен как приложение (как указано выше).

В основном у нас есть практика добавления web.config в подкаталог, если мы хотим защитить доступ к файлам подкаталогов (скажем, каталог является администратором, и мы хотим защитить страницы администратора от нескромных пользователей).

Ответ 2

У меня была эта ошибка, когда версия .NET была неправильной - убедитесь, что сайт настроен на тот, который вам нужен.

Подробнее см. aspnet_regiis.exe.

Ответ 3

У меня была эта ошибка с VS 2015, в моем случае переход на страницу свойств проекта, вкладку "Веб" и нажатие кнопки Create Virtual Directory в разделе "Серверы" разрешило ее

Ответ 4

Похоже, что администратор заблокировал "аутентификацию" node веб-сайта, что можно сделать в глобальном web.config довольно легко. Или, в двух словах, это работает как разработанный.

Ответ 5

Сообщение об ошибке довольно ясно: у вас есть элемент конфигурации в файле web.config в подпапке вашего веб-приложения, которое не разрешено на этом уровне - или вы забыли настроить веб-приложение как приложение IIS.

Пример: вы пытаетесь переопределить параметры уровня приложения, такие как параметры проверки форм в файле web.config в подпапке вашего приложения

Ответ 7

У меня была такая же проблема на visual studio 2012. Для проекта интернет-приложений. Как разрешить "Ошибка сервера в ошибке" / "Приложение"?

Поиск ответа Я столкнулся с этим сообщением, но ни один из этих ответов не помог мне. Затем я нашел еще одно сообщение здесь, в stackoverflow, в котором есть ответ на решение этой проблемы. Указанный аргумент вышел за пределы допустимых значений. Имя параметра: сайт

Ответ 8

При создании нового веб-приложения с использованием visual studio.net он автоматически создает виртуальный каталог и настраивает его как приложение. Однако, если вы вручную создаете виртуальный каталог и не настроен как приложение, вы не сможете просматривать приложение и можете получить вышеуказанную ошибку.

Ответ 9

Я также получил эту ошибку, когда я переместил EDMX файл структуры сущностей в подпапку "Модели". Это автоматически изменило метаданные в настройках строки подключения в моем app.config.

Итак, до изменения строки подключения... это выглядело примерно так:

<connectionStrings>
    <add name="MyDbEntities" connectionString="metadata=res://*/MyDb.csdl|res://*/MyDb.ssdl|res://*/MyDb.msl; ...
</connectionStrings>

А после... он добавил имя подпапки "Модели" (кстати... он также добавил "Модели" в пространство имен для сгенерированных классов EF), и строка подключения теперь выглядит примерно так:

<connectionStrings>
    <add name="MyDbEntities" connectionString="metadata=res://*/Models.MyDb.csdl|res://*/Models.MyDb.ssdl|res://*/Models.MyDb.msl; ...
</connectionStrings>

У меня есть проект веб-сайта, который ссылается на этот проект Entity Framework DB. Но в его файле web.config не было обновлений для строки подключения... и это, когда я начал получать сообщение об ошибке компиляции, которая обсуждалась здесь.

Чтобы исправить эту ошибку, я обновил строку подключения в файле web.config в проекте веб-сайта, чтобы он соответствовал app.config в моем проекте EntityFramework.

Ответ 10

vs2017 только что добавлен в эти строки в файл csproj.user

    <IISExpressAnonymousAuthentication>enabled</IISExpressAnonymousAuthentication>
    <IISExpressWindowsAuthentication>enabled</IISExpressWindowsAuthentication>
    <IISExpressUseClassicPipelineMode>false</IISExpressUseClassicPipelineMode>

with these lines in Web.config

<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" maxRequestLength="1048576" />
<identity impersonate="false" />
<authentication mode="Windows" />
<authorization>
  <allow users="yourNTusername" />
  <deny users="?" />
</authorization>

И это сработало