Невозможно добавить сайт .net 3.5 в IIS Express - PullRequest
3 голосов
/ 20 июня 2011

Итак, моя проблема в том, что у меня довольно большой проект ASP.NET 3.5, который я пытаюсь запустить локально с помощью установки IIS Express. Я являюсь одним из многих разработчиков в моей команде, которые управляют этим и другими проектами, используя IIS Express, и я фактически запускаю сайт .NET 4.0 (в комплекте с локальным SSL) ежедневно без проблем. Для справки: мой компьютер работает под управлением Windows 7 Ultimate 64-разрядной версии с Microsoft Visual Studio 2010, и я являюсь администратором на локальном компьютере. Visual Studio работает с правами администратора, и я убедился, что все пулы приложений, перечисленные в inetmgr, работают.

Вот рабочий процесс, который я получаю при попытке запустить проект локально:

  • Когда я запускаю свой проект в первый раз или удаляю какие-либо сайты, перечисленные в Microsoft WebMatrix (утилита конфигурации для IIS Express, аналогично inetmgr), я получаю следующую последовательность сообщений:

(1) диалоговое окно «Да-Нет» из Microsoft Visual Studio, в котором говорится:

The local IIS URL <a href="http://localhost:2000/site/path/" rel="nofollow">http://localhost:2000/site/path/</a> specified for Web project My.Web.Project has not been configured. In order to open this project the virtual directory needs to be configured. Would you like to create the virtual directory now?

(2) В этот момент я нажимаю «Да». Промежуточное окно из VS всплывает с полосой загрузки, достигает примерно 50%, а затем появляется диалоговое окно с предупреждением из VS, читающее:

Configuring Web <a href="http://localhost:2000/" rel="nofollow">http://localhost:2000/</a> for ASP.NET 3.5 failed. You must manually configure this site for ASP.NET 3.5 in order for the site to run correctly. Visual Studio cannot detect whether this virtual root has been configured for use with ASP.NET 2.0 The likely cause is that you do not have sufficient privileges to access the IIS metabase. You may need to manually configure this site for ASP.NET 2.0 in order for your site to run correctly.

(3) На данный момент я могу нажимать только «ОК» или «Справка», поэтому я нажимаю «ОК» для продолжения. Этот процесс продолжается для всех других проектов в моем решении, которые настроены для локального запуска в IIS Express. .

  • Когда я пытаюсь запустить сайт локально, нажимая CTRL-F5, я получаю диалоговое окно с сообщением об ошибке: Unable to launch the IIS Express Web Server
  • Когда я пытаюсь просмотреть сведения об указанном сайте в Microsoft Web Matrix, я получаю сообщение об ошибке от WebMatrix, которое гласит: An error caused WebMatrix to shut down. Error message: Invalid application pool name
  • Это сообщение об ошибке является правильным, за исключением случаев, когда я смотрю на файл конфигурации IIS Express (C: \% User Dir% \ My Documents \ IISExpress \ config \ applicationhost.config), в разделе <sites> каждое приложение имеет тег <application> с указанием только атрибута path, без указания атрибута applicationPool. (И наоборот, приложение 4.0, которое работает на IISExpress, имеет указанный атрибут).
  • После добавления атрибута applicationPool на сайт я могу открывать / просматривать / редактировать его данные в WebMatrix, но все равно не могу запустить его локально.

Итак, что я делаю неправильно или какая конфигурация неверна на моей машине, которая мешает мне работать, но не у других разработчиков с таким же кодом?

Ответы [ 3 ]

2 голосов
/ 21 июня 2011

Для приложения, если appPool не указан явно, будет использоваться пул приложений по умолчанию. В IIS Express пул приложений по умолчанию - Clr4IntegratedAppPool

<applicationDefaults applicationPool="Clr4IntegratedAppPool" />.

Если ваше приложение не является приложением .net 4.0, установите его соответствующим образом. Если ваше приложение является приложением 2.0, установите для appPool значение «Clr2IntegratedAppPool».

Ниже приведены пулы приложений, предварительно определенные в конфигурации IIS Express.

Clr4IntegratedAppPool
Clr4ClassicAppPool
Clr2IntegratedAppPool
Clr2ClassicAppPool
0 голосов
/ 20 апреля 2018

Я столкнулся с этим в VS 2017, на машине без установленного IIS. Так что найти настройку пула приложений сложнее.

Я пытался откатить сайт до .NET Framework 2.0. Больше работы, чем стоит, поэтому оставил эту ветку и вернулся к моей предыдущей ветке git, которая использовала 4.6.1. Однако IIS Express продолжал пытаться работать как 2.0!

Наконец-то нашел, где он установлен. Он находится в папке решения: .vs \ config \ applicationhost.config

Затем нашел мой сайт ("CBR_Report") и настройку: applicationPool = "Clr2IntegratedAppPool".

<sites>
        <site name="WebSite1" id="1" serverAutoStart="true">
            <application path="/">
                <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation=":8080:localhost" />
            </bindings>
        </site>
        <site name="CBR_Report" id="2">
            <application path="/" applicationPool="Clr2IntegratedAppPool">
                <virtualDirectory path="/" physicalPath="C:\Code\Cost_Based_Rate\CBR_Report" />
            </application>
0 голосов
/ 20 июня 2011

Итак, я действительно решил это, когда заканчивал писать вопрос. Когда я выяснял детали файла конфигурации, я понял, что при настройке проекта на первом сайте в конфигурации определены два приложения (одно - сервис, обеспечивающий извлечение данных, другое - полноценный). веб-сайт), и поэтому я предоставлял только отсутствующий атрибут applicationPool для двух из трех приложений.

Если я смогу понять, почему в нем отсутствовали обязательные атрибуты appPool, я обновлю этот ответ. Надеюсь, это поможет кому-то еще!

...