Существует ли стабильный элемент управления блогами 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 шагов:

  1. С помощью инструмента администрирования IIS или панели управления вашего хостинг-провайдера установите для папки возможность "Запись";

  2. Если у вас есть прямой доступ к файловой системе, убедитесь, что учетная запись, под которой работает пул приложений BlogEngine.NET (обычно "ASPNET" в XP / 2003 и "Network Service" в Vista / 2008), имеет доступ на запись в физическую папку.;

  3. После разархивирования веб-папки все файлы имеют включенный атрибут только для чтения. Отключите этот атрибут для папки App_Data и всех файлов и подпапок.

Перейдите на веб-страницу

Хорошо, теперь вы готовы перейти на веб-сайт и посмотреть, как вы это сделали. Например, если вы установили веб-сайт на локальный компьютер для тестирования, перейдите к http://localhost/default.aspx, Вы также можете отредактировать документ по умолчанию для отображения в default.aspx с помощью оснастки IIS MMC. Если вы сделаете это, вы можете перейти непосредственно к http://localhost/ без указания имени страницы. Если все идет хорошо, вас приветствует страница блога по умолчанию.

Войдите и настройте ваше имя пользователя

Последний шаг - прокрутить вниз и найти ссылку для входа на правой стороне. Нажмите Войти, а затем войдите в следующую информацию.

Имя пользователя: admin
Пароль: админ

После входа в систему вы увидите новое меню с правой стороны. Нажмите Пользователи.

Создайте нового пользователя для себя. Выбранное вами имя пользователя - это ваше отображаемое имя. Смотрите страницу администрирования пользователей для получения дополнительной информации.

Удалить учетную запись администратора. Вы же не хотите, чтобы все, кто читает это, могли войти в ваш блог?

Наконец, выйдите из системы, затем снова войдите в систему, используя учетную запись пользователя, которую вы только что создали для себя.

Вышеуказанная установка предназначена для того, чтобы, если мы хотим запустить блог как отдельный сайт, что особенно редко встречается в нашем случае, ** поэтому давайте включим наш блог в наш сайт, чтобы нам не пришлось перенаправлять на другой сайт, чтобы просто перейти в блог или из блога на основной веб-сайт.** введите код здесь

Включите сайт Blog Engine в наш собственный проект:

  1. Создайте папку внутри корня с именем Блог или как вы хотите назвать ее. Скопируйте весь сайт.net Blog Engine в эту папку, за исключением ресурсов App_Global,App_Code,Web.Config, robots.txt, web.sitemap и Global.asax.

  2. Переименуйте папку App_Code в BlogApp_Core или как хотите. Потому что папки App_Code не будут работать с веб-приложениями, так как они работают с веб-сайтами. Теперь скопируйте эту папку в Root проекта.

  3. Объедините или скопируйте файлы robots.txt и web.sitemap App_Global Resources в корневой каталог проекта.

  4. Добавьте проект Blog Engine.core в веб-приложение. Создайте Blog Engine.core и добавьте ссылку из вашего веб-проекта в BlogEngine.Core.dll.

  5. Изменения в 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">
  1. Щелкните правой кнопкой мыши на Project и выберите Convert to Web Application.

теперь вы будете думать, что мы закончили с преобразованием веб-сайта в веб-приложение, но подождите, пока есть некоторые проблемы с версией Blog Engine .NET 2.0, и, в то же время, включив ее в наш проект, теперь нам нужно отредактировать файлы внутри проекта, чтобы заставить его работать.

  1. Ищи ~/admin на уровне веб-проекта и заменить его ~/Blog/admin Блог - это название нашей папки.

  2. И то же самое для ~/widget~/themes а также ~/pics,

  3. Открыть файл ~/blog/pages/settings.aspx.cs и перейти к строке 262 в методе BindCultures() и измените следующую строку с:

    строка пути = Server.MapPath(Util.AbsoluteWebRoot + "App_GlobalResources/");

чтобы:

string path = Server.MapPath("~/App_GlobalResources/");
  1. Открой 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();
  1. Теперь проверьте файлы внутри Blog/admin папку здесь вы должны проверить пространство имен на самом деле они испортили пространство имен, может быть, это будет хорошо в следующих выпусках. Вы также должны проверить регистр письма, например Admin и admin. Исправить все проблемы пространства имен.

  2. Сделайте глобальный поиск ~/App_Code и заменить его на ~/Blog_App_Code или как вы назвали App_code Папка.

  3. Создайте проект и запустите сейчас, ваше приложение должно работать нормально. Перейдите в блог. Попробуйте добавить блоги. Удалить блоги. Подождите, эй, что случилось, вы не можете удалить блоги. Боже мой, что идет не так, хм, так что поиск решения и, наконец, получил проблему:),

Итак, вот решение. На самом деле удаление происходит через 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 - это лучший инструмент для ведения блогов с открытым исходным кодом, который легко устанавливается за несколько минут. Воспользуйтесь кодом и заставьте его работать в соответствии с вашими требованиями. Просто нужно позаботиться о некоторых моментах, чтобы это работало внутри нашего проекта.

Список используемой литературы

Обратитесь к этим сайтам для настройки. Для создания собственных тем:

Для создания наших собственных расширений:

Для создания нашего собственного контроля:

Dasblog на codeplex легко интегрируется. Скотт Хансельман на самом деле использует его для своего блога http://www.hanselman.com/blog

http://dasblog.codeplex.com/

BlogEngindotnet так легко построить свой блог, вам просто нужно

  1. скачать последнюю версию,
  2. запустить скрипт базы данных, доступный в исходном коде,
  3. изменить строку подключения, указывающую на базу данных,
  4. загрузить на поддомен, вот и все!

Если вам нужно бесплатное ведение блога, воспользуйтесь блогером, предоставленным Google.

Лучше всего с BlogEngine установить его в качестве субдомена вашего существующего сайта и изменить скин CSS в соответствии с вашим существующим дизайном. Вот пример, где я использовал этот подход:

http://homenetdirect.com/

http://blog.homenetdirect.com/

У блога слишком много всего, чтобы его можно было использовать в качестве контрольного ИМХО. Тем не менее, вы можете легко создать администратора для простой панели новостей с заголовком и датой вверху, а также создать базу данных.

Другие вопросы по тегам