#c# #asp.net #iis #iis-7
#c# #asp.net #iis #iis-7
Вопрос:
У меня возникает проблема каждый раз, когда я обновляю свой ASP.NET приложение на моем сервере IIS. Проблемы заключаются в:
- Я получаю сообщение об ошибке, сообщающее мне отключить пользовательские ошибки
<customErrors mode="Off"/>
- Перенаправление веб-сайта по умолчанию в TLD перенаправляет URL-адрес на неопределенный срок
- Я создал, удалил и заменил приложение или перенаправление
У меня есть ASP.NET 4.5 Рамочное приложение. Я использую Visual Studio 2012 для создания веб-приложения. Я использую 64-разрядную версию Windows Server 2008 R2 с установленной ролью IIS 7. Все последние параметры для роли IIS были проверены и установлены.
Как только IIS запущен и запущен, я создал каталог в C:inetpubwwwroot и поместил мой опубликованный ASP.NET приложение в каталоге, который я создал. Затем я добавил приложение через диспетчер IIS.
После этого я могу перейти к своему приложению из www.example.com/app . Текущее приложение работает. Поскольку я хочу, чтобы перенаправлялся любой, кто вводит мой TLD в веб-браузере, я создал перенаправление HTTP через диспетчер IIS на веб-сайте по умолчанию. Он создает web.config
файл в C:inetpubwwwroot с редиректом в нем.
После того, как все это сделано, все работает отлично. Это до тех пор, пока я не захочу обновить ASP.NET код. Я удаляю старые файлы из C:inetpubwwwrootapp и скопируйте в новые файлы. После этого больше ничего не работает правильно. Я попытался удалить приложение через IIS, а затем повторно добавить его. Я даже удалил перенаправление http, а затем повторно добавил его. Независимо от того, что я делаю, корень моего сайта www.example.com и веб-приложение не будет работать. Я должен удалить роль IIS и переустановить ее. Как только я это сделаю, текущий код заработает, и все вернется в нормальное русло.
Может кто-нибудь, пожалуйста, скажите мне, как я могу обновлять свой код при необходимости каждый раз переустанавливать IIS?
Комментарии:
1. Это сообщение о том, что вам нужно отключить режим customErrors, не является вашей фактической ошибкой. Он направляет вас на это, потому что есть какая-то основная ошибка, но она не будет показывать фактическую ошибку по умолчанию, если вы не перейдете к ней на localhost (в целях безопасности). Оставлять customErrors отключенными — плохая практика (если только это не временно). Вместо этого реализуйте правильное ведение журнала ошибок, например Elmah . Как только вы определите, в чем заключается фактическая ошибка, вы сможете устранить основную причину.
2. Я не уверен, но пробовали ли вы «обновить» (не удаляя и не заменяя файлы) папку приложения в IIS без вашего web.config?
3. @mason Ошибок нет. Как только я удаляю и переустанавливаю IIS, все работает нормально с новым обновленным кодом
4. Не удаляйте и не переустанавливайте IIS — попробуйте получить фактическое сообщение об ошибке, чтобы вы могли выяснить, в чем заключается основная проблема (проверьте журналы событий на сервере или установите customErrors=Off .)
5. После создания каталога в C:inetpubwwwroot вы пытались обновить веб-сайт из диспетчера IIS, щелкнуть правой кнопкой мыши по папке и выбрать Преобразовать в приложение, чтобы избежать «смешивания» конфигурации приложения и конфигурации веб-сайта
Ответ №1:
После того, как вы создали перенаправление в IIS, оно создало перенаправление в файле web.config в C:inetpubwwwroot
Мало ли вы знали, что оно также создает его в папке вашего приложения. Все хорошо, пока вы не попытаетесь обновить код. Поскольку вы удаляете файлы в этой папке при публикации (или, по крайней мере, это были ваши настройки), этот файл был удален.
Вы должны добавлять свои файлы публикации, а не удалять их, поскольку вы просите IIS перенаправить для вас 🙂
Ответ №2:
при обновлении файлов, пожалуйста, обратитесь к старому файлу web.config, который был запущен ранее. просто убедитесь, что если вы изменили ссылки или сборку в коде, затем обратитесь к новому файлу web.config, иначе старый файл будет работать вместо переустановки служб IIS.
Ответ №3:
После обновления файлов проверьте настройки разрешений папки в меню свойства папки-> безопасность-> дополнительные настройки. если вложенные папки меняют свои настройки при каждом обновлении, это может быть проблемой.
Ответ №4:
Возможно ли иметь app_offline.htm при этом отображается сообщение типа «этот сайт временно недоступен для обслуживания, пожалуйста, проверьте еще раз позже»?
Такие файлы позволяют обновлять ваш сайт без каких-либо неприятных сообщений об ошибках.
Комментарии:
1. Нет, не совсем, я не думаю, что это выглядит профессионально.
Ответ №5:
я нашел УДИВИТЕЛЬНЫЙ учебник, который решил эту проблему для меня… Я должен согласиться с тем, что касается файла web.config, используйте ваш текущий (сделайте его копию, если у вас установлены настройки публикации для удаления старых файлов — я допустил ту же ошибку и обнаружил, что мне пришлось повторно предоставить доступ к моей папке wwwroot, а такжемоя база данных по какой-то причине).
этот учебник — это то, что помогло мне в процессе установки, а затем и обновления моего приложения.
ТАКЖЕ
- Если вы вносите изменения только в свои представления или файлы css, вы можете просто скопировать и вставить обновленные представления в эту папку — я обнаружил, что это гораздо менее инвазивно, чем повторная публикация всего проекта при каждом обновлении.
проверьте ссылку ниже, чтобы получить помощь в публикации и настройке IIS и SQL server
https://www.codeproject.com/Articles/674930/Configuring-IIS-ASP-NET-and-SQL-Server
Ответ №6:
Покажите нам настройки пула приложений.
Может быть много проблем, таких как права доступа к файловой системе для пользовательского контекста, в котором запущен пул приложений.
Может быть разрешение на доступ к базе данных.
Нам нужно немного больше информации.