2015-09-12 3 views
2

У меня странная проблема - до сих пор я работал над этим приложением только на одной машине. Я загрузил веб-приложение asp.net на dev-машину в офисе для клиентов.Asp.Net ищет web.config не в том месте

Когда я пытаюсь запустить приложение в режиме отладки через Visual Studio, я получаю ошибку 500.19 - обычно это означает проблему с разрешением. Я пошел через движение проверки прав доступа, прежде чем я заметил, каталог он ищет конфигурационный файл в.

«Config File», показанный на ошибках

\\?\C:\Users\{my-name}\Documents\{project-name}\web.config 
  • однако правильно место на самом деле

    C: \ Users \ Admin \ Documents \ проекты \ {имя-проекта} \ web.config

Кто-нибудь знает, где указано местоположение веб-конфигурации? Я всегда предполагал, что он может быть только в корневом каталоге.

+0

Вы действительно имеете в виду 'проекты \ {project-name} \ web.config' вместо' projects {project-name} \ web.config'? – Dai

+0

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

+0

Ваш файл SLN не имеет ничего общего с этим ... если это проект без проекта, а не проект веб-приложения? – Dai

ответ

0

Предполагая, что вы имеете в виду Documents\projects\{project-name}\web.config вместо Documents\projects{project-name}\web.config, вы видите эффект от областей применения.

В IIS несколько полностью отдельных веб-приложений могут быть частью одного и того же веб-сайта, разделяясь на «Области применения», который обычно работает, указывая путь префикса, за которым следует корень области (до IIS7 Application Область может быть физическим или виртуальным каталогом, поскольку IIS7 они всегда являются виртуальными каталогами, но могут представлять физический каталог).

Откройте диспетчер IIS и выберите (виртуальный) каталог, который Visual Studio создал для вашего проекта, и щелкните его правой кнопкой мыши в левой панели навигации и выберите «Преобразовать в приложение», затем ASP.NET будет искать веб-сайт .config (и каталог bin, среди прочих) в этой папке, а не в корне сайта.

Обратите внимание, что корень веб-сайта также считается корнем области приложения, поэтому общее сообщение об ошибке «Исключение в»/«приложение». Если вы получаете YSoD в другом корне приложения, вы увидите сообщения «Исключение в»/subFolder «приложение».

+0

Хорошая пятнистость с отсутствующей обратной косой чертой - я не знал, что у StackOverflow были escape-символы. Ваша идея имеет смысл, но она выполняется (или, по крайней мере, пытается запустить) в IIS Express через Visual Studio. Может ли такой эквивалент произойти через эту настройку? –

5

Как выясняется, причина этого было обновление до Visual Studio 2015.

, а не .suo файла новой Visual Studio имеет .vs папку с файлами, специфичными для экземпляра проекта. Здесь указан корневой каталог сайта разработки.

Я удалил файлы и добавил .vs/* в мой файл .gitignore и больше не имел проблем.

Смежные вопросы