Публиковать веб-приложение asp.net в отдельных файлах
У меня есть ASP.NET WebApplication (не веб-сайт), который был написан на C#.
Я хочу опубликовать и развернуть это приложение для более чем 50 сайтов на моем сервере. Я бы предпочел сделать несколько библиотек DLL и поместить их в GAC моего сервера, чтобы все сайты использовали библиотеки DLL из GAC, а затем я могу обновить все свои сайты, просто заменив некоторые библиотеки DLL в GAC.
Когда я публикую свое приложение, я получаю одну dll для всех файлов.cs, но все файлы.aspx остаются. Я хочу объединить.aspx файлы в одну сборку тоже.
Есть ли способ или какая-то другая идея для моего случая?
2 ответа
В свойствах вашего веб-проекта:
пакет / публиковать веб
check - предварительно скомпилировать это приложение перед публикацией
дополнительно - объединить весь вывод в одну сборку
Когда вы переходите к настройкам публикации, есть опция "сделать сайт обновляемым", если вы снимите галочку, что весь код cs будет объединен в app_web.dll.
У вас все еще будут все отдельные страницы aspx, так как они определяют точку входа в код. Насколько мне известно, единственный способ объединить их - скопировать / вставить все отдельные страницы aspx в default.aspx и обернуть их <asp:Panel ID="HomePage" Runat="Server" Visible="False">
и затем установите правую панель, видимую в Page_Load, в зависимости от QueryString. Вы можете использовать переписывание URL, чтобы получить хорошие URL.
В зависимости от того, сколько у вас страниц и насколько они большие в коде, я бы, наверное, сам этого не сделал. Но если вы обнаружите, что результат, когда одна страница перевешивает остальные, это технически возможно.
- Загрузить модуль IIS: http://www.iis.net/downloads/microsoft/url-rewrite
- Создание правил: http://www.iis.net/learn/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module
Другой вариант, возможно, заключается в том, чтобы просто разместить приложение на поддомене и создать его там, где это необходимо. Это может быть невозможно из-за проблем с несколькими источниками, в зависимости от ваших настроек, но это будет более "чистый" способ работы.
Надеюсь, это помогло.