Произошла ошибка при загрузке приложения ASP.NET после его настройки для IIS

Я изменил свое веб-приложение ASP.NET для использования локального IIS вместо IIS Express. Теперь, после повторного открытия решения, при загрузке приложения возникает следующая ошибка:

Ошибка: Project 'Atlas2' не может быть открыт, потому что компилятор Visual С# 2015 не может быть создан. "Atlas2" уже является частью рабочей области.

ошибка: Project 'Atlas2' не может быть открыт, потому что Visual С#  2015 не удалось создать. Элемент с тем же ключом имеет  уже добавлено.

Кто-нибудь, пожалуйста, помогите мне, как я могу перезагрузить проект? Я использую Visual Studio Team Services (был TFS Online), если это помогает.

Ответы

Ответ 1

Я решил свою проблему. Я выгрузил проект и отредактировал файл .csproj. Я сделал следующие изменения:

  • <UseIISExpress>false</UseIISExpress> в true
  • Удалить <UseIIS>True</UseIIS>
  • Удалить <IISUrl>http://localhost/MyWebApp</IISUrl>

Затем я перезагрузил проект. Это сработало. Фактически он откатился, чтобы использовать IIS Express.

Ответ 2

Та же проблема возникла в моей системе и была решена путем запуска Visual Studio в режиме администратора. Проблема заключалась в том, что IIS с тем же именем хоста и порта как проект ASP.NET и без прав администратора. Visual Studio не смог добавить сайт.

Ответ 3

У меня была эта ошибка после перехода с IIS Express на полный IIS с Visual Studio 2015. Мне удалось загрузить проект, когда я запускал Visual Studio в качестве администратора.

Ответ 4

Я получал аналогичную ошибку в VS 2015.

"не удалось открыть, потому что визуальный компилятор С# 2015 не мог быть созданный." "с тем же ключом уже добавлен"

Мне удалось решить эту проблему, открыв решение в Visual Studio 2013, очистка решения, закрыв визуальную студию, а затем открыв то же решение в Visual Studio 2015.

Я также заметил, что после выполнения этой последовательности событий файл csproj проекта, который изначально дал эту ошибку, обновил свой элемент ProjectExtensions и установил <UseIIS>False</UseIIS>

Изображение ниже разницы между csproj при возникновении ошибки и после обходного пути.

введите описание изображения здесь

Имейте в виду, что до того, как я использовал это обходное решение, я попытался вручную обновить этот элемент и установить значение false, но это не сработало.

Ответ 5

Проблема заключается в том, что приложение настроено на использование локальных служб IIS вместо Express, а их coud - две проблемы, для которых вы не можете загрузить приложение.

Проблема 1. У вас нет IIS, установленного в вашей локальной системе. В этом случае вам нужно установить IIS или открыть файл .csproj и сделать изменения:

  <UseIISExpress>false</UseIISExpress> to true
  Remove <UseIIS>True</UseIIS>
  Remove <IISUrl>http://localhost</IISUrl>

Проблема 2. У Visual Studio нет доступа к IIS, в этом случае просто откройте Visual Studio в режиме администратора.

Ответ 6

Это часто случается, когда аутентификация не была настроена в IIS, или веб-сайт (или виртуальный каталог) не был настроен в IIS. Чтобы устранить эту проблему, откройте диспетчер IIS.

  • Убедитесь, что для проекта существует веб-сайт или виртуальный каталог и указывает на папку, содержащую папку bin для вашего проекта.
  • Откройте аутентификацию и включите анонимную аутентификацию.
  • Нажмите "Изменить", если выбрана "Анонимная аутентификация".
  • Выберите конкретного пользователя, введите учетные данные Windows (имя домена\имя пользователя).
  • Откройте правила авторизации .NET.
  • Убедитесь, что существует только разрешить/все пользователи.
  • Перейдите в "Пулы приложений" > "Расширенные настройки".
  • Выберите "Идентификация" и введите учетные данные Windows (домен\имя пользователя).

Это должно открыть сайт, чтобы Visual Studio могла загрузить ваш проект. Если нет, перейдите в "Дополнительные настройки" для своего сайта и выберите "Учетные записи физического пути". Убедитесь, что установлен для сквозной аутентификации.

Ответ 7

У меня была похожая проблема, но ни одно из упомянутых решений не помогло мне.

Однако я открывал свое решение из списка последних решений Visual Studio. Но когда я открыл файл решения из проводника, дважды щелкнув по нему, проект загрузился правильно.

Ответ 8

Я получал эту ошибку.

Я использую IIS-Express. И у меня VS2015.

После беспорядка с файлом .csproj.... Я смог заставить его работать.

После сравнения моего текущего файла с тем, что было в контроле источника TFS, разница была только в этой строке.

Ранее эта строка не существовала. В моем "рабочем" (после messin 'с ним) файле, я имел

<UseGlobalApplicationHostFile />

Опять же, в csproj, который вызывает ошибку, у меня не было волшебной линии, но в рабочем csproj у меня было это.

Ниже приведена строка в контексте. Используйте только нижеследующие панировочные сухари, не копируйте и не вставляйте все это. Волшебная линия - 3 снизу.

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>
    </ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}</ProjectGuid>
    <ProjectTypeGuids>{E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>MyRootNamespace</RootNamespace>
    <AssemblyName>MyAssemblyName</AssemblyName>
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
    <MvcBuildViews>false</MvcBuildViews>
    <UseIISExpress>true</UseIISExpress>
    <IISExpressSSLPort />
    <IISExpressAnonymousAuthentication>enabled</IISExpressAnonymousAuthentication>
    <IISExpressWindowsAuthentication>enabled</IISExpressWindowsAuthentication>
    <IISExpressUseClassicPipelineMode>false</IISExpressUseClassicPipelineMode>
    <SccProjectName>SAK</SccProjectName>
    <SccLocalPath>SAK</SccLocalPath>
    <SccAuxPath>SAK</SccAuxPath>
    <SccProvider>SAK</SccProvider>
    <UseGlobalApplicationHostFile />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">

Ответ 9

У меня была та же проблема, когда я переместил мою службу WCF REST с IISExpress на localhost. Итак, что я сделал, я открыл файл .csproj в Блокноте и искал UseIISExpress, изменил его значение с false на True. Затем открыл VS2015 как администратор, и он сработал. Хорошо, что когда я запускаю проект, он все еще работает на моем локальном хосте, а не на IISExpress.

Ответ 10

У меня была эта проблема с обновлением до Visual Studio 2017. Она была исправлена и теперь доступна в обновленном выпуске.

Вы можете скачать последнее обновление через уведомление в продукте или с https://www.visualstudio.com

Ссылка: не удалось открыть проект, так как не удалось создать компилятор Visual С# 2017

Ответ 11

Я создал новый файл Sln.


Закройте Решение.

Откройте файл проекта основного проекта. Добавьте нарушающие проекты обратно в новый файл Sln.

Сохраните файл Sln поверх старого неисправного.

Ответ 12

У меня была такая же точная ошибка, вот что решило мою проблему. В корне вашего решения вы должны увидеть .vs/config/applicationhost.config. В этой папке удалите оскорбительный сайт. Мой выглядел так:

        <site name="FrontEnd.Web" id="2">
            <application path="/" applicationPool="Clr4IntegratedAppPool">
                <virtualDirectory path="/" physicalPath="C:\xxxxx\xxxxx\xxxxx\FrontEnd.Web" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation="*:3391:localhost" />
            </bindings>
        </site>

Я удалил весь тег сайта для этого приложения, сохранил и затем щелкнул правой кнопкой мыши мое решение > Добавить > Существующий проект и повторно добавил проект в решение.