Существует ли стабильный элемент управления блогами ASP.NET (разработанный для интеграции в существующий сайт)?
Я видел dotnetblogengine.net, и из сообщений на форуме у меня сложилось впечатление, что его не так просто интегрировать в существующий сайт. Существует ли современное решение для ведения блогов / новостей, которое должно использоваться так же, как и любой другой элемент управления ASP.NET?
4 ответа
Пожалуйста, ознакомьтесь с пошаговым руководством по интеграции этого существующего приложения. Кроме того, вы также найдете решения для интеграции с приложением asp.net, поскольку есть некоторые сложности, связанные с интеграцией этого проекта веб-сайта BlogEngine с веб-приложением asp.net. Вы можете просто следовать инструкциям ниже, тогда это будет сделано.
Получить папку веб-проекта
Теперь, когда у вас есть загруженный zip-файл, вам нужно распаковать его. Это можно сделать с помощью разных утилит и разных методов.
Если вы выберете загрузку веб-проекта, в новой распакованной папке будет веб-проект, с которым вы хотите работать. Если вы загрузите исходный код, веб-проект будет похоронен немного. Веб-проект находится в папке BlogEngine.NET, затем в папке BlogEngine.
Загрузите веб-проект на свой веб-сервер
Теперь, когда у вас есть папка веб-проекта, скопируйте эти файлы и папки на ваш веб-сервер. Обычно это включает FTP, но в зависимости от вашей ситуации может потребоваться даже переносное устройство хранения (например, USB-накопитель).
Установить папку как приложение.NET 4.0
Об этом особо нечего сказать. Если у вас есть прямой доступ к IIS, вам нужно создать приложение. Если вы используете хостинг-провайдера, вам нужно использовать его панель управления, чтобы это произошло. Это должен быть стандартный вариант, но если вы его не найдете, вам, возможно, придется обратиться за поддержкой к вашему хостинг-провайдеру.
Добавить разрешения на запись для папки App_Data
Это часто забываемый шаг. Если вы пропустите это, вы заметите, как только вы попытаетесь внести изменения. Вам необходимо дать приложению права на запись в папку App_Data. Опять же, ваш хостинг-провайдер может иметь панель управления, которая позволяет вам сделать это. Если нет, вам может потребоваться обратиться к вашему хостинг-провайдеру за поддержкой.
Установка прав записи может включать до 3 шагов:
С помощью инструмента администрирования IIS или панели управления вашего хостинг-провайдера установите для папки возможность "Запись";
Если у вас есть прямой доступ к файловой системе, убедитесь, что учетная запись, под которой работает пул приложений BlogEngine.NET (обычно "ASPNET" в XP / 2003 и "Network Service" в Vista / 2008), имеет доступ на запись в физическую папку.;
После разархивирования веб-папки все файлы имеют включенный атрибут только для чтения. Отключите этот атрибут для папки App_Data и всех файлов и подпапок.
Перейдите на веб-страницу
Хорошо, теперь вы готовы перейти на веб-сайт и посмотреть, как вы это сделали. Например, если вы установили веб-сайт на локальный компьютер для тестирования, перейдите к http://localhost/default.aspx
, Вы также можете отредактировать документ по умолчанию для отображения в default.aspx с помощью оснастки IIS MMC. Если вы сделаете это, вы можете перейти непосредственно к http://localhost/
без указания имени страницы. Если все идет хорошо, вас приветствует страница блога по умолчанию.
Войдите и настройте ваше имя пользователя
Последний шаг - прокрутить вниз и найти ссылку для входа на правой стороне. Нажмите Войти, а затем войдите в следующую информацию.
Имя пользователя: admin
Пароль: админ
После входа в систему вы увидите новое меню с правой стороны. Нажмите Пользователи.
Создайте нового пользователя для себя. Выбранное вами имя пользователя - это ваше отображаемое имя. Смотрите страницу администрирования пользователей для получения дополнительной информации.
Удалить учетную запись администратора. Вы же не хотите, чтобы все, кто читает это, могли войти в ваш блог?
Наконец, выйдите из системы, затем снова войдите в систему, используя учетную запись пользователя, которую вы только что создали для себя.
Вышеуказанная установка предназначена для того, чтобы, если мы хотим запустить блог как отдельный сайт, что особенно редко встречается в нашем случае, ** поэтому давайте включим наш блог в наш сайт, чтобы нам не пришлось перенаправлять на другой сайт, чтобы просто перейти в блог или из блога на основной веб-сайт.** введите код здесь
Включите сайт Blog Engine в наш собственный проект:
Создайте папку внутри корня с именем Блог или как вы хотите назвать ее. Скопируйте весь сайт.net Blog Engine в эту папку, за исключением ресурсов App_Global,App_Code,Web.Config, robots.txt, web.sitemap и Global.asax.
Переименуйте папку App_Code в BlogApp_Core или как хотите. Потому что папки App_Code не будут работать с веб-приложениями, так как они работают с веб-сайтами. Теперь скопируйте эту папку в Root проекта.
Объедините или скопируйте файлы robots.txt и web.sitemap App_Global Resources в корневой каталог проекта.
Добавьте проект Blog Engine.core в веб-приложение. Создайте Blog Engine.core и добавьте ссылку из вашего веб-проекта в BlogEngine.Core.dll.
Изменения в Web.Config Если у вас уже есть web.config, объедините Web.Config блога с ним, в противном случае просто скопируйте его в корневой каталог. Перейти к строке в разделе страниц:
изменить это на:
<add assembly=”BlogWap” namespace=”Controls” tagPrefix=”blog”/>
где BlogWap
это имя веб-проекта. Перейти к строке:
<add key="BlogEngine.VirtualPath" value="~/" />
измените это на:
<add key="BlogEngine.VirtualPath" value="~/Blog/" />
где Blog
Имя папки, которое мы создали ранее.
Если вы хотите использовать базу данных SQL в качестве, мы должны пойти на некоторые изменения
Изменения в использовании SQL в качестве БД
Выполните настройку внутри setup/SQLServer на вашем Sql для автоматической генерации таблиц. Если вы хотите использовать членство в ASP.NET, вы можете удалить be.Users
а также be.roles
столы.
Измените строку подключения в соответствии с вашей БД, где name="BlogEngine"
, Измените строку:
<blogProvider defaultProvider="XMLBlogProvider">
чтобы:
<blogProvider defaultProvider="DbBlogProvider">
Измените строку:
<membership defaultProvider="XMLMembershipProvider">
чтобы:
<membership defaultProvider="SqlMembershipProvider">
Измените строку:
<roleManager defaultProvider="XMLRoleProvider" enabled="true" cacheRolesInCookie="true">
чтобы:
<roleManager defaultProvider="SqlRoleProvider" enabled="true" cacheRolesInCookie="true">
- Щелкните правой кнопкой мыши на Project и выберите Convert to Web Application.
теперь вы будете думать, что мы закончили с преобразованием веб-сайта в веб-приложение, но подождите, пока есть некоторые проблемы с версией Blog Engine .NET 2.0, и, в то же время, включив ее в наш проект, теперь нам нужно отредактировать файлы внутри проекта, чтобы заставить его работать.
Ищи
~/admin
на уровне веб-проекта и заменить его~/Blog/admin
Блог - это название нашей папки.И то же самое для
~/widget
~/themes
а также~/pics
,Открыть файл
~/blog/pages/settings.aspx.cs
и перейти к строке 262 в методеBindCultures()
и измените следующую строку с:строка пути = Server.MapPath(Util.AbsoluteWebRoot + "App_GlobalResources/");
чтобы:
string path = Server.MapPath("~/App_GlobalResources/");
Открой
BlogEngine.Core
проект и перейти кUtils.cs
, Сейчас ищемCodeAssemblies()
Функцию здесь нужно поменять:var assemblyName = "__code";
Измените эту строку на:
var assemblyName = "WebProjectName";
а также:
else
{
if (!IsMono)
{
assemblyName = "App_Code";
}
чтобы:
else
{
if (!IsMono)
{
assemblyName = "WebProjectName";
}
Перейти к функции:
AddFolderJavaScripts()
+ Изменить
var fileEntries = Directory.GetFiles(HostingEnvironment.MapPath("~/" + pathFromRoot))
.Where(file =>
!scriptsAddedDuringRequest.ContainsKey(file) &&
file.EndsWith(".js", StringComparison.OrdinalIgnoreCase) &&
!file.EndsWith("-vsdoc.js",
StringComparison.OrdinalIgnoreCase)).ToList();
чтобы:
var fileEntries = Directory.GetFiles(HostingEnvironment.MapPath("~/Blog/" + pathFromRoot))
.Where(file =>
!scriptsAddedDuringRequest.ContainsKey(file) &&
file.EndsWith(".js", StringComparison.OrdinalIgnoreCase) &&
!file.EndsWith("-vsdoc.js",
StringComparison.OrdinalIgnoreCase)).ToList();
Теперь проверьте файлы внутри
Blog/admin
папку здесь вы должны проверить пространство имен на самом деле они испортили пространство имен, может быть, это будет хорошо в следующих выпусках. Вы также должны проверить регистр письма, например Admin и admin. Исправить все проблемы пространства имен.Сделайте глобальный поиск
~/App_Code
и заменить его на~/Blog_App_Code
или как вы назвалиApp_code
Папка.Создайте проект и запустите сейчас, ваше приложение должно работать нормально. Перейдите в блог. Попробуйте добавить блоги. Удалить блоги. Подождите, эй, что случилось, вы не можете удалить блоги. Боже мой, что идет не так, хм, так что поиск решения и, наконец, получил проблему:),
Итак, вот решение. На самом деле удаление происходит через asmx, который мы вызываем внутренне из js, поэтому нам нужно будет проверить путь внутри файла js, который имеет правильный путь к файлам asmx или нет, лучший способ - добавить следующие строки на ваш сайт..master и admin.master
<script type="text/javascript">
var fullBaseUrl = '<%=ResolveUrl("~") %>';
</script>
и использовать это fullBaseUrl
Переменная внутри вашего файла admin.js, которая была проблема. Мы также должны добавить следующие 2 строки в раздел Web.config в разделе обработчиков, чтобы эти файлы asmx работали:
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Теперь пришло время проверить, все ли работает нормально, или нет, так что давайте создадим проект и проследим за его работой. Отлично, наконец, мы сделали это, но после тщательного тестирования узнали, что у нас все еще есть некоторые проблемы, которые я получил после долгого перерыва:(и это было с медиа-файлами, как мы видим, у нас есть возможность загружать видеофайлы в посты и страницы, загрузка будет работать нормально, но когда вы перейдете к этому посту, видео просто не будет чёрный ящик оооооооооооооооооооооооооом - это застрял в kkkk, но эй, мы разработчики программного обеспечения, никогда не боимся проблемы, просто поверим в себя и продолжаем, так что давайте исследуем, и, как мы знаем, если есть проблема, есть решение:) решение
Идти к Blog/admin/EditPage.aspx.cs
о, они жестко закодировали путь здесь, так что это была проблема
Поиск функции:
BtnUploadVideoClick(object sender, EventArgs e)
Изменить:
var folder = "~/" + mediaFolder + "/";` to `var folder = "~/Blog/" + mediaFolder + "/";
Мы должны сделать то же самое еще раз для почты, и вы найдете это внутри Blog/admin/post/Add_entry.aspx.cs
в BtnUploadVideoClick(object sender, EventArgs e) {
Создайте решение снова и просмотрите: "Эй, наконец-то, наш блог работает отлично:)
Мы также можем добавить Facebook и Twitter для публикации постов через Twitter и Facebook. Я только что прикрепил один файл к нашему BlogApp_Code/Extensions
Папка для реализации этой функциональности, после того, как собрал проект, просмотрел его, и волшебство есть, когда мы перейдем к вашему сообщению, мы получим опцию Facebook и Twitter, расположенную чуть ниже вашего сообщения. Мы также можем создать свою собственную тему в Blog Engine .net, просто следуя некоторым правилам. Поэтому мы поздравляем нас с интеграцией BlogEngine.net в наш веб-сайт с визуальными элементами, похожими на наш сайт. Теперь загрузите пост, добавьте страницы в блог, поделитесь своими мыслями, используйте блог для своего бизнеса и получайте удовольствие от того, что вы когда-либо хотели:).
Выводы
В качестве движка для разработчиков блогов ASP.NET.NET - это лучший инструмент для ведения блогов с открытым исходным кодом, который легко устанавливается за несколько минут. Воспользуйтесь кодом и заставьте его работать в соответствии с вашими требованиями. Просто нужно позаботиться о некоторых моментах, чтобы это работало внутри нашего проекта.
Список используемой литературы
- http://www.upfromthesky.com/blog/post/2009/01/30/Integrate-BlogEngine-145-into-an-exisitng-website-%28VSNET-Website-Project%29.aspx
- http://blogengine.codeplex.com/documentation
Обратитесь к этим сайтам для настройки. Для создания собственных тем:
Для создания наших собственных расширений:
Для создания нашего собственного контроля:
Dasblog на codeplex легко интегрируется. Скотт Хансельман на самом деле использует его для своего блога http://www.hanselman.com/blog
BlogEngindotnet так легко построить свой блог, вам просто нужно
- скачать последнюю версию,
- запустить скрипт базы данных, доступный в исходном коде,
- изменить строку подключения, указывающую на базу данных,
- загрузить на поддомен, вот и все!
Если вам нужно бесплатное ведение блога, воспользуйтесь блогером, предоставленным Google.
Лучше всего с BlogEngine установить его в качестве субдомена вашего существующего сайта и изменить скин CSS в соответствии с вашим существующим дизайном. Вот пример, где я использовал этот подход:
http://blog.homenetdirect.com/
У блога слишком много всего, чтобы его можно было использовать в качестве контрольного ИМХО. Тем не менее, вы можете легко создать администратора для простой панели новостей с заголовком и датой вверху, а также создать базу данных.