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