VS 2012 не може завантажити проект, який використовує IIS, із спеціальним хостом прив’язки - вважає, що він використовує IIS Express


85

У мене є проект ASP.NET, який використовує IIS. Сайт IIS налаштовано на використання власного імені хосту прив’язки. Файл проекту містить такі налаштування:

...
<UseIISExpress>false</UseIISExpress>
...
<ProjectExtensions>
  <VisualStudio>
    <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
      <WebProjectProperties>
        <UseIIS>True</UseIIS>
        <AutoAssignPort>False</AutoAssignPort>
        <DevelopmentServerPort>8662</DevelopmentServerPort>
        <DevelopmentServerVPath>/</DevelopmentServerVPath>
        <IISUrl>http://custom.host.name/</IISUrl>
        <NTLMAuthentication>False</NTLMAuthentication>
        <UseCustomServer>False</UseCustomServer>
        <CustomServerUrl></CustomServerUrl>
        <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
      </WebProjectProperties>
    </FlavorProperties>
  </VisualStudio>
</ProjectExtensions>
...

Коли проект налаштовано таким чином, я можу отримати доступ до сайту з, http://custom.host.name/а VS автоматично підключається до робочого процесу IIS під час налагодження.

Коли я перезавантажую проект (або шляхом закриття / повторного відкриття рішення, або вивантаження / перезавантаження в контекстному меню проекту), відбувається щось несподіване. Проект не вдається завантажити, (load failed)відображається праворуч від імені проекту у провіднику рішень, а вікно повідомлення відображається з таким повідомленням (воно також відображається у вікні Вивід):

The URL 'http://custom.host.name/' for Web project 'Some.Asp.Net.Project' 
is configured to use IIS Express as the web server but the URL is currently
configured on the local IIS web server. To open this project, you must use
IIS Manager to remove the bindings using this URL from the local IIS web server.

Я спробував видалити конфігурацію сайту проекту з applicationhost.configфайлу IIS Express , але це не допомогло.

Я не стикаюся з цією проблемою під час зіставлення проекту із програмою IIS на сайті за замовчуванням.

Версія VS - Ultimate 2012 Update 3.


3
Так, у мене така ж проблема з VS2013, оскільки я вже раз використовував IIS Express з цим проектом ... Дійсно дратує!
kipusoep

3
Спробуйте відредагувати файли csproj або csproj.user та встановити UseIISExpressзначення false. stackoverflow.com/a/19103452/138938
Джон Кроуелл

2
@HeadofCatering, у мене щойно виникла ця проблема, але UseIISExpress вже було встановлено на false у файлі .csproj проектів. Однак просто пошук IIS змушує мене знаходити тег XML "<UseIIS> True </UseIIS>" усередині файлу csproj (у <ProjectExtensions><VisualStudio><FlavorProperties> <WebProjectProperties>) і просто встановлювати його як "< UseIIS> True </UseIIS> "зробив так, щоб візуальна студія могла знову завантажити проект. Сподіваємось, це не мало інших непередбачених ефектів!
mgrandi

2
@mgrandi Майте на увазі помилку; установка <UseIIS>True</UseIIS>для <UseIIS>False</UseIIS>зробив трюк для мене теж. Дякую за пропозицію!
Діон В.

Відповіді:


205

Відкриття в якості адміністратора не вирішило проблему для мене. Що встановив її для мене було відкриття , як.csproj і .csproj.userфайли і забезпечення того , щоб обидва UseIISExpressвстановлений false.

У моєму випадку .csproj.userфайл перевизначав .csprojфайл, хоча і SaveServerSettingsInUserFileбув позначений false.

<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <UseIISExpress>false</UseIISExpress> 
    <!-- ... -->
</Project>

48
Видалення csproj.user нарешті вирішило мою проблему. Дякую!
Брайан Самтер

Щиро дякую, я ламав голову, переглядаючи налаштування csproj. Все виглядало добре. Після того, як я видалив файл csproj.user, він розпочав завантаження проекту без будь-яких скарг ++ 1
Esen


21

Я встановив " SaveServerSettingsInUserFile " як True, і це спрацювало для мене.

<ProjectExtensions>
<VisualStudio>
  <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
    <WebProjectProperties>
      <UseIIS>True</UseIIS>
      <AutoAssignPort>True</AutoAssignPort>
      <DevelopmentServerPort>50584</DevelopmentServerPort>
      <DevelopmentServerVPath>/</DevelopmentServerVPath>
      <IISUrl>http://localhost:50584/</IISUrl>
      <NTLMAuthentication>False</NTLMAuthentication>
      <UseCustomServer>False</UseCustomServer>
      <CustomServerUrl>
      </CustomServerUrl>
      <SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>
    </WebProjectProperties>
  </FlavorProperties>
</VisualStudio>

Джерело: натисніть тут


4

коли ви використовуєте дозволити використання для IISexpress, applicationHost.Config (знаходиться в% userprofile% \ iisexpress \ config), вам потрібно встановити прапорець "Застосувати налаштування сервера до всіх користувачів (зберігати у файлі проекту)", щоб уникнути написаних налаштувань у вашому Project.csproj.user налаштування проекту

робити це те саме, що редагувати файл project.csproj і писати <WebProjectProperties> <UseIIS>True</UseIIS> <AutoAssignPort>True</AutoAssignPort> <DevelopmentServerPort>62242</DevelopmentServerPort> <DevelopmentServerVPath>/</DevelopmentServerVPath> <IISUrl>http://localhost:8100/Claims/</IISUrl> <OverrideIISAppRootUrl>True</OverrideIISAppRootUrl> <IISAppRootUrl>http://localhost:8100/Claims/</IISAppRootUrl> <NTLMAuthentication>False</NTLMAuthentication> <UseCustomServer>False</UseCustomServer> <CustomServerUrl></CustomServerUrl> <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile> </WebProjectProperties> Якщо ви ввімкнули IISExpress, а файл applicationHost.config не містить записів, що стосуються налаштувань вашого проекту, вам просто потрібно натиснути кнопку "Створити віртуальний каталог" і закінчити !

сподіваюся, це допоможе


Що це за версія візуальної студії? У мене немає цієї опції у VS Pro 2013
Matt R

@Matt R: Я отримав VS2012 pro, тому я припускаю, що це буде те саме для вашої версії. у провіднику рішень виберіть свій проект web.application, клацніть правою кнопкою миші та виберіть «властивості» - тоді з’явиться вікно з вкладками, виберіть вкладку «Веб», і ви побачите скріншот, який я вклав у відповідь ... і вибачте за пізнє відповідь!
zobidafly

3

У моєму випадку видалення файлу * .csproj.user працювало нормально


2

У мене була та сама проблема, і для мене все, що мені потрібно було відкрити Visual Studio як адміністратор, і це вирішило проблему для мене.

так просто клацніть правою кнопкою миші на Visual Studio 2012 і натисніть "Запустити як адміністратор". сподіваюся, це допоможе


2

Для мене поєднання обох функцій працювало для Visual Studio 2015 Preview з 64-розрядною
версією Windows 7: 1. видалити * .csproj.user файл та
2. <UseIISExpress>false</UseIISExpress>у файлі рішення.
Кроки для кроку 2: У Visual Studio клацніть правою кнопкою миші на Project ==> Unload ===> Редагуйте рішення


1

Цього досить

Прокоментуйте цей рядок у файлі проекту x.csproj

<!--<UseIIS>True</UseIIS>-->

x.csproj: помилка: URL-адреса ' http: // localhost / x ' для веб-проекту 'x' налаштована на використання IIS Express як веб-сервера, але URL-адреса наразі налаштована на локальному веб-сервері IIS. Щоб відкрити цей проект, потрібно використовувати менеджер IIS, щоб видалити прив’язки за допомогою цієї URL-адреси з локального веб-сервера IIS.


1

Я приземлився тут, коли проект, налаштований на використання IIS, не завантажувався, оскільки не міг знайти веб-сайт (myproject.mycompany.local) - хоча веб-сайт добре завантажився у моєму веб-браузері.

Рішенням було переконатися, що для прив’язки веб-сайту в IIS 7 ім’я хоста було встановлено на „myproject.mycompany.local”. Щоб перейти до прив’язок вашого сайту:

  1. У IIS 7 виберіть сайт на лівій навігаційній панелі.
  2. На панелі дій праворуч натисніть Прив'язки ...

Якщо ваш веб-сайт також не завантажується у веб-браузері, це, можливо, тому, що у вас немає запису для нього у файлі хостів:

127.0.0.1    myproject.mycompany.local

1

Якщо ваш проект є частиною рішення, відкрийте файл рішення (.sln) і відредагуйте розділ проекту.

ProjectSection(WebsiteProperties) = preProject
    UseIISExpress = "false"

Це спрацювало для мене.


0

Ця проблема зіпсувала мені сьогоднішній день у VS 2013. Я спробував усе вищезазначене, але не завантажив проект, доки не створив веб-сайт у IIS і не заповнив цей розділ у файлі .csproj (особливо елемент IISUrl):

<ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
        <WebProjectProperties>
          <UseIIS>True</UseIIS>
          <AutoAssignPort>True</AutoAssignPort>
          <DevelopmentServerPort>81</DevelopmentServerPort>
          <DevelopmentServerVPath>/</DevelopmentServerVPath>
          <IISUrl>http://localhost/SomeProject</IISUrl>
          <NTLMAuthentication>False</NTLMAuthentication>
          <UseCustomServer>False</UseCustomServer>
          <CustomServerUrl>
          </CustomServerUrl>
          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>


це має масу сенсу. Я не міг отримати цю роботу, хоча.
Віннемукка

0

У мене була та ж проблема, робота адміністратора не працювала для мене.

Налаштування <UseIIS>True</UseIIS> значення false у файлі ".csproj" проекту тимчасово може завантажити проект, але значення повертається до True після перезапуску або закриття рішення.

Завершуючи відповідь @Cyrus (що працювало для мене) для більш акуратної відповіді, я більше зосередився на файлі csproj.user проекту і знайшов точне джерело проблеми: встановлення <UseIISExpress>true</UseIISExpress>значення false, а потім перезавантаження проекту. працює добре, не видаляючи файл csproj.user. результат такий:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectView>ProjectFiles</ProjectView>
    <UseIISExpress>false</UseIISExpress>
    <IISExpressSSLPort />
    <IISExpressAnonymousAuthentication />
    <IISExpressWindowsAuthentication />
    <IISExpressUseClassicPipelineMode />
    <NameOfLastUsedPublishProfile>My Project's Name</NameOfLastUsedPublishProfile>
  </PropertyGroup>

Слід зазначити, що в моєму випадку кожен раз, коли я зазвичай відкриваю Visual Studio (не як адміністратор), повертаються налаштування IIS, і мені доводиться виконувати завдання знову.
Хома Пурмохаммаді,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.