Как изменить строку "You are here" в сайте на Dotnetnuke чтобы она отображалась по русски?
Нужно найти папку /Portals/_defauls/Skins/MinimalExtrophy/App_localResources. Там будет файл index.ascx.resx. Нужно скопировать его в файл index.ascx.ru-RU.resx, а потом в текстовом редакторе открыть этот файл и изменить там строку "You are here" на "Вы здесь".
Такое решение работает для DNN версии 4.9 и выше. Посмотреть ка это работет можно здесь
среда, 24 декабря 2008 г.
понедельник, 17 ноября 2008 г.
Ошибка в сайте на Dotnetnuke: System.Web.Configuration.HttpCapabilitiesBase.get_MajorVersion()
Вот уже неделю наблюдаю в журнале сайта, сделанного на CMS Dotnetnuke, сообщение об ошибке:
Message: DotNetNuke.Services.Exceptions.PageLoadException: Value cannot be null. Parameter name: String ---> System.ArgumentNullException: Value cannot be null. Parameter name: String at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) at System.Web.Configuration.HttpCapabilitiesBase.get_MajorVersion() at DotNetNuke.UI.Utilities.ClientAPI.BrowserSupportsFunctionality(ClientFunctionality eFunctionality) at DotNetNuke.UI.WebControls.DNNMenu.get_IsDownLevel() at DotNetNuke.UI.WebControls.DNNMenu.LoadPostedXML() at DotNetNuke.UI.WebControls.DNNMenu.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.AddedControl(Control control, Int32 index) at System.Web.UI.ControlCollection.Add(Control child) at DotNetNuke.UI.Skins.NavObjectBase.InitializeNavControl(Control objParent, String strDefaultProvider) at DotNetNuke.UI.Skins.Controls.Nav.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.AddedControl(Control control, Int32 index) at System.Web.UI.ControlCollection.Add(Control child) at DotNetNuke.Framework.DefaultPage.Page_Init(Object sender, EventArgs e) at System.Web.UI.Control.OnInit(EventArgs e) at System.Web.UI.Page.OnInit(EventArgs e) at DotNetNuke.Framework.PageBase.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) --- End of inner exception stack trace ---
Причем бывает UserAgent: Mozilla и бывает UserAgent: Yandex/1.01.001 (compatible; Win16; F).
Все это похоже на ботов Яндекса и Гугла, хотя, так как в журнале нет IP-адресов, пока это точно не известно. Нужно еще будет проверить лог IIS-а, чтобы это точно узнать. В любом случае как-то некрасиво получается, что можно вот так просто DNN-сайт свалить в эксепшн. А уж тем более, если это Боты, то такой вариант разработчики должны были учесть.
Придется теперь лезть в ядро и ковыряться в vb.NET исходниках. Кто вообще придумал Dotnetnuke писать не на C# ?!!
Message: DotNetNuke.Services.Exceptions.PageLoadException: Value cannot be null. Parameter name: String ---> System.ArgumentNullException: Value cannot be null. Parameter name: String at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) at System.Web.Configuration.HttpCapabilitiesBase.get_MajorVersion() at DotNetNuke.UI.Utilities.ClientAPI.BrowserSupportsFunctionality(ClientFunctionality eFunctionality) at DotNetNuke.UI.WebControls.DNNMenu.get_IsDownLevel() at DotNetNuke.UI.WebControls.DNNMenu.LoadPostedXML() at DotNetNuke.UI.WebControls.DNNMenu.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.AddedControl(Control control, Int32 index) at System.Web.UI.ControlCollection.Add(Control child) at DotNetNuke.UI.Skins.NavObjectBase.InitializeNavControl(Control objParent, String strDefaultProvider) at DotNetNuke.UI.Skins.Controls.Nav.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.AddedControl(Control control, Int32 index) at System.Web.UI.ControlCollection.Add(Control child) at DotNetNuke.Framework.DefaultPage.Page_Init(Object sender, EventArgs e) at System.Web.UI.Control.OnInit(EventArgs e) at System.Web.UI.Page.OnInit(EventArgs e) at DotNetNuke.Framework.PageBase.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) --- End of inner exception stack trace ---
Причем бывает UserAgent: Mozilla и бывает UserAgent: Yandex/1.01.001 (compatible; Win16; F).
Все это похоже на ботов Яндекса и Гугла, хотя, так как в журнале нет IP-адресов, пока это точно не известно. Нужно еще будет проверить лог IIS-а, чтобы это точно узнать. В любом случае как-то некрасиво получается, что можно вот так просто DNN-сайт свалить в эксепшн. А уж тем более, если это Боты, то такой вариант разработчики должны были учесть.
Придется теперь лезть в ядро и ковыряться в vb.NET исходниках. Кто вообще придумал Dotnetnuke писать не на C# ?!!
понедельник, 10 ноября 2008 г.
Бегун требует аттестат WebMoney Transfer для вывода денег
С ноября 2008 года, вывести деньги из системы контекстной рекламы Бегун можно только тем, кто получил аттестат WebMoney Transfer. Причем, сумму меньше 300 у.е. можно вывести имея начальный аттестат, а больше - уже нужен персональный.
Для получения начального аттестата нужно заполнить заявку в которой указать свои персональные данные (Ф.И.О., место и дату рождения, прописку, паспорт и т.д. вплоть до размера трусов). После чего эти данные будут проверены при ЛИЧНОЙ (!) встрече одним из Персонализаторов. При чем за это НУЖНО ЗАПЛАТИТЬ от $3 и выше!
Персонализаторы есть только в больших городах. А если я живу в каком-то Мухосранске? Теперь я должен ехать фиг знает куда, платить за билет, платить за персонализацию, выкладывать спецслужбам все свои данные... И все это ради того, чтобы получить жалкие $50?
Begun сильно меня разочаровал. Думаю, что не только меня. С такими заморочками он потеряет много партнеров. А Яндекс директ и Google AdSence - приобретут.
Зачем Бегун сам себе усложняет жизнь, вводя необходимость наличия аттестата WebMoney Transfer?
Для получения начального аттестата нужно заполнить заявку в которой указать свои персональные данные (Ф.И.О., место и дату рождения, прописку, паспорт и т.д. вплоть до размера трусов). После чего эти данные будут проверены при ЛИЧНОЙ (!) встрече одним из Персонализаторов. При чем за это НУЖНО ЗАПЛАТИТЬ от $3 и выше!
Персонализаторы есть только в больших городах. А если я живу в каком-то Мухосранске? Теперь я должен ехать фиг знает куда, платить за билет, платить за персонализацию, выкладывать спецслужбам все свои данные... И все это ради того, чтобы получить жалкие $50?
Begun сильно меня разочаровал. Думаю, что не только меня. С такими заморочками он потеряет много партнеров. А Яндекс директ и Google AdSence - приобретут.
Зачем Бегун сам себе усложняет жизнь, вводя необходимость наличия аттестата WebMoney Transfer?
Ярлыки:
аттестат,
Бегун,
Бегун отстой,
контекстная реклама,
начальный аттестат,
Begun,
Transfer,
WebMoney
понедельник, 3 ноября 2008 г.
Как программно изменить название веб-страницы в Dotnetnuke ?
В обычной .aspx странице программно изменить название (title) очень просто:
В DNN модуле такой код не даст ничего. Название страницы будет то, которое сформирует ядро Dotnetnuke.
Но Title страницы на Dotnetnuke все-таки можно без проблем изменить. Делается это так:
Посмотреть как это работает можно здесь: сайт а-класса школа 5 города Ахтырка
protected void Page_Load(object sender, EventArgs e)
{
this.Title = "Обычная веб-страница";
}
В DNN модуле такой код не даст ничего. Название страницы будет то, которое сформирует ядро Dotnetnuke.
Но Title страницы на Dotnetnuke все-таки можно без проблем изменить. Делается это так:
protected void Page_Load(object sender, EventArgs e)
{
DotNetNuke.Framework.CDefault page = (DotNetNuke.Framework.CDefault)this.Page;
page.Title = "Веб-страница в Dotnetnuke";
}
Посмотреть как это работает можно здесь: сайт а-класса школа 5 города Ахтырка
Ярлыки:
веб-страница,
программирование,
ASP.NET,
C#,
CMS,
DNN,
dotnetnuke,
Page.Title,
title
воскресенье, 2 ноября 2008 г.
Сайт Одноклассники.ру стал платным: зажрались окончательно!
Со вчерашнего дня за регистрацию на супер-пупер популярном сайте Одноклассники.ру придется раскошелиться: нужно будет прислать платное СМС, причем его цена различная для разных операторов.
За эти сайтом уже давно замечена жажда к деньгам: то режим "невидимка" платный придумали, то оценку "5+" за деньги придумали, то "застраховать фотографию" опять же за деньги. Теперь вот и регистрация платная. Думаю следующим шагом будет абонплата.
В условиях кризиса хозяева сайта решили повысить свои сверхприбыли. Это их право. В Сети есть еще много других БЕСПЛАТНЫХ социальных сетей, поэтому не нужно зацикливаться на этом зажравшемся сайте.
Давно есть подозрения, что "Одноклассники.ру" контролируются спецслужбами, а так как в России карточку мобильного оператора не купить без паспорта, то теперь, отправив СМС для регистрации на сайте, эта карточка привязывается еще и к аккаунту на "Одноклассниках". В общем тотальный контроль. Таким образом убиваются 2 зайца: сайт получает дополнительный доход, а спецслужбы по номеру телефона находят аккаунт на сайте.
В крайнем случае можно создать свой сайт, например вот такой: сайт 11-А класса 5-й школы, который всегда будет бесплатным и не будет тайным проектом спецслужб :)
За эти сайтом уже давно замечена жажда к деньгам: то режим "невидимка" платный придумали, то оценку "5+" за деньги придумали, то "застраховать фотографию" опять же за деньги. Теперь вот и регистрация платная. Думаю следующим шагом будет абонплата.
В условиях кризиса хозяева сайта решили повысить свои сверхприбыли. Это их право. В Сети есть еще много других БЕСПЛАТНЫХ социальных сетей, поэтому не нужно зацикливаться на этом зажравшемся сайте.
Давно есть подозрения, что "Одноклассники.ру" контролируются спецслужбами, а так как в России карточку мобильного оператора не купить без паспорта, то теперь, отправив СМС для регистрации на сайте, эта карточка привязывается еще и к аккаунту на "Одноклассниках". В общем тотальный контроль. Таким образом убиваются 2 зайца: сайт получает дополнительный доход, а спецслужбы по номеру телефона находят аккаунт на сайте.
В крайнем случае можно создать свой сайт, например вот такой: сайт 11-А класса 5-й школы, который всегда будет бесплатным и не будет тайным проектом спецслужб :)
Ярлыки:
деньги,
зажрались,
Одноклассники.ру,
плата,
регистрация,
сайт,
odnoklassniki.ru
среда, 29 октября 2008 г.
Очередной лохотрон: обманщики на Bez-Obid.Ru ( Zhlobam.net)
Для заработка в интернет появился очередной сервис. Сначала размещался на Zhlobam.net а потом плано перешел на Bez-Obid.Ru. Суть в том, что одни люди размещают на этом сайте жалобы, а люди, кототрые хотят заработать берут специально подготовленные ссылки на жалобы и постят и где-попало: на сайтах, форума, блогах. За каждый уникальны клик (Uniq) сайт начисляет 0.5 цента на счет партнера. Минимальная сумма к выводу $20.
Я тоже (в моем то возрасте!) повелся на эту фигню. Решил заработать двадцатку на пиво. Сначала вроде бы все шло неплохо были клики и около 80% из них были "уники". Но постепенно, в течении месяца процент "уников" уменьшался и дошло вообше до смешного. Смотрите скриншот:

В общем, такими темпами $20, которые можно вывести себе на кошелек, соберутся только к старости.
Люди! Не ведитесь на этот лохотрон: Bez-Obid.Ru обманывают жестко и нагло.
Bez-Obid.Ru - кидалово очередное.
Жаль потраченного времени. Ну что-ж будет наука на будущее. Надеюсь мой опыт Вам поможет :)
Я тоже (в моем то возрасте!) повелся на эту фигню. Решил заработать двадцатку на пиво. Сначала вроде бы все шло неплохо были клики и около 80% из них были "уники". Но постепенно, в течении месяца процент "уников" уменьшался и дошло вообше до смешного. Смотрите скриншот:

В общем, такими темпами $20, которые можно вывести себе на кошелек, соберутся только к старости.
Люди! Не ведитесь на этот лохотрон: Bez-Obid.Ru обманывают жестко и нагло.
Bez-Obid.Ru - кидалово очередное.
Жаль потраченного времени. Ну что-ж будет наука на будущее. Надеюсь мой опыт Вам поможет :)
Ярлыки:
вебмастер,
кидалово,
лохотрон,
обман,
Bez-Obid.Ru,
Zhlobam.net
Как динамически сменить запрос для ListView привязанного к LinqDataSource?
Для того чтобы динамически сменить запрос для ListView привязанному к LinqDataSource нужно обработать событие OnSelecting у LinqDataSource.
Например вот так:
Посмотреть как это работает можно здесь: сайт а-класса
Например вот так:
protected void dsMates_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
if (Request.Params["classMateId"] != null)
{
int mateId;
if (int.TryParse(Request.Params["classMateId"], out mateId))
{
using (DataClassesPrivateMsgDataContext db = new DataClassesPrivateMsgDataContext())
{
e.Result = db.Classmates.Where(mate => mate.Id == mateId).FirstOrDefault();
}
}
}
}
Посмотреть как это работает можно здесь: сайт а-класса
Ярлыки:
.NET framework 3.5,
запрос,
ASP.NET,
C#,
code,
LinqDataSource,
ListView,
OnSelecting,
Query
вторник, 28 октября 2008 г.
Локализанция CalendarExtender в DotNetNuke
Классная все-таки штука AjaxControlToolkit: щелкнул 2 раза, и у тебя уже календарь на веб-страничке. Кинул себе календарь на форму в своем новом dotnetnuke модуле, немного насторил свойства и зашибись работает. Правда почему-то название месяцев по английски пишет, хотя должен настройки брать из браузера.
Оказалось в DNN как всегда свои заморочки, особенно с AJAX-ом. Чтобы исправить это пишем в модуле так:
И, вуаля: названия дней недели и месяцев в CalendarExtender отображаются по-русски.
Оказалось в DNN как всегда свои заморочки, особенно с AJAX-ом. Чтобы исправить это пишем в модуле так:
protected void Page_Init(object sender, EventArgs e)
{
if (DotNetNuke.Framework.AJAX.IsInstalled())
{
DotNetNuke.Framework.AJAX.RegisterScriptManager();
DotNetNuke.Framework.AJAX.SetScriptManagerProperty(Page, "EnableScriptGlobalization", new object[] { true });
DotNetNuke.Framework.AJAX.SetScriptManagerProperty(Page, "EnableScriptLocalization", new object[] { true });
}
}
И, вуаля: названия дней недели и месяцев в CalendarExtender отображаются по-русски.
вторник, 21 октября 2008 г.
Проблема с ModalPopupExtender в DotNetNuke (DNN) : ModalPopupExtender в Internet Explorer отображается не по центру экрана, а слева вверху
Захотелось мне сделать на AJAX красивые Popup-окошки в одном из разрабатываемых сайтов, чтобы пользователя чувствовали себя как-будто они не на веб-старнице, а в настольном приложении. Сказано - сделано. Используя ModalPopupExtender это проще простого.
Как обычно тестирую в 3-х браузерах: Opera, Internet Explorer и FireFox.
В "Опере" и FireFox-е все работет хорошо, а вот в Internet Explorer-е ModalPopupExtender отображает попап-окно не по центру окна браузера, а слева вверху, причем центр этого окна находится в точке с коодинатами x=0, y=0.
Такое положение дел меня явно не устраивало. Начал поиски причины и решения. Сайт я начал разрабатывать на DNN версии 4.8.4, но потом вышла версия 4.9 и модули (как и сам dotnetnuke) также тестировались на новой версии. Так вот я заметил, что на DNN 4.8.4 вышеописанная проблема наблюдалась, а на DNN 4.9 уже нет!
Оказалось, что причина была в том, что сайт на DNN версии 4.8.4 рендерится браузерами в Quirks mode, благодаря вот этому:
А вот если посмотреть на страницы сгенерированную DNN 4.9 видим:
И теперь уже браузеры рендерят станицы в Standarts Compilance Mode (Режим соответствия стандартам). Это радует. Наконец-то и dotnetnuke начинает пытаться соответствовать стандартам. Насколько было бы легче программистам, если бы все последовали их примеру:)
Итак, как говорят в Голливуде : Problem solved. Хочу еще заметить: остерегайтесь установки скинов на свой сайт, так как после этого он, возможно, будет работать не совсе так как он работал до этого:)
Напомню, что прежде, чем использовать у себя в модуле ModalPopupExtender из набора AjaxControlToolkit, необходимо добавить следующую строку в .ascx файле Вашего модуля.
Кроме того, чтобы AJAX работал в Вашем модуле, нужно в DotNetNuke-освском сайте установить галочку "Supports Partial Rendering?" для Ваших user-контролов, в которых используется AJAX.
Как обычно тестирую в 3-х браузерах: Opera, Internet Explorer и FireFox.
В "Опере" и FireFox-е все работет хорошо, а вот в Internet Explorer-е ModalPopupExtender отображает попап-окно не по центру окна браузера, а слева вверху, причем центр этого окна находится в точке с коодинатами x=0, y=0.
Такое положение дел меня явно не устраивало. Начал поиски причины и решения. Сайт я начал разрабатывать на DNN версии 4.8.4, но потом вышла версия 4.9 и модули (как и сам dotnetnuke) также тестировались на новой версии. Так вот я заметил, что на DNN 4.8.4 вышеописанная проблема наблюдалась, а на DNN 4.9 уже нет!
Оказалось, что причина была в том, что сайт на DNN версии 4.8.4 рендерится браузерами в Quirks mode, благодаря вот этому:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
А вот если посмотреть на страницы сгенерированную DNN 4.9 видим:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
И теперь уже браузеры рендерят станицы в Standarts Compilance Mode (Режим соответствия стандартам). Это радует. Наконец-то и dotnetnuke начинает пытаться соответствовать стандартам. Насколько было бы легче программистам, если бы все последовали их примеру:)
Итак, как говорят в Голливуде : Problem solved. Хочу еще заметить: остерегайтесь установки скинов на свой сайт, так как после этого он, возможно, будет работать не совсе так как он работал до этого:)
Напомню, что прежде, чем использовать у себя в модуле ModalPopupExtender из набора AjaxControlToolkit, необходимо добавить следующую строку в .ascx файле Вашего модуля.
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
Кроме того, чтобы AJAX работал в Вашем модуле, нужно в DotNetNuke-освском сайте установить галочку "Supports Partial Rendering?" для Ваших user-контролов, в которых используется AJAX.
Форматтер C# JavaScript HTML ASP.NET кода для вашего блога
Так как мне часто приходится выкладывать на своем блоге код на C#, javaScript, HTML, то хотелось, чтобы он был красиво и главное удобно для чтения оформлен. Поэтому я пользуюсь для этого бесплатным онлайн сервисом, который находится здесь:
www.manoli.net/csharpformat/format.aspx
Рекомендую всем!
www.manoli.net/csharpformat/format.aspx
Рекомендую всем!
Ярлыки:
блог,
код,
программирование,
форматирование,
blog,
C#,
code,
formatter,
HTML,
javaScript
вторник, 14 октября 2008 г.
каталог сайтов, на которых можно разместить ссылку на свой блог
Полезная подборка: "41 место, куда можете засунуть свой блог"
лежит здесь: www.ithorn.ru/2007/10/27/promote-your-rss/
лежит здесь: www.ithorn.ru/2007/10/27/promote-your-rss/
пятница, 10 октября 2008 г.
анимированные gif - файлы загрузки для AJAX
Есть классниый сайт на котором в онлайне можно получить анимированную gif-ку для AJAX лоадера. Есть много шаблонов, можно выбрать цвета, размер. Сайт: ajaxload.info. Я на своем сайте одноклассников 11-А класса уже использую несколько таких.
Для пользователей "Оперы" с сайта "Оперы" можно скачать виджет "Animated loading image generator!", и тогда можно будет генерить gif-ку не выходя со своего любимого сайта одноклассников 11-А класса :)
Для пользователей "Оперы" с сайта "Оперы" можно скачать виджет "Animated loading image generator!", и тогда можно будет генерить gif-ку не выходя со своего любимого сайта одноклассников 11-А класса :)
среда, 8 октября 2008 г.
Как поставить счетчик liveinternet.ru в блоге
Решил поставить себе в блог счетчик посещений liveinternet.ru. Зарегистрировался, получил код. Добавил в блог гаджет text/html, впихнул туда код счетчика. Смотрю на блог, а он выдает ошибки в javascript. Открываю снова гаджет, и вижу что код счетчика автоматически был изменен (заменнены кое какие кавычки) и естественно не работает.
Ладно, прописываю код уже в шаблоне в самом html. При попытке сохранить шаблон выскакивает ошибка:
Не удалось проанализировать ваш шаблон, так как он неправильно сформирован. Убедитесь, что все элементы XML правильно закрыты.
Сообщение об ошибке в XML: Open quote is expected for attribute "{1}"
Понятно, liveinternet до сих пор с xml-ем не дружит. И не только с xml, а и вообще со стандартами Веба. А на дворе то 21-й век.
Черт с ним, с этим "живым интернетом". Пойдем к "Гуглу", любителю стандартов. Здесь: www.google.com/analytics регистрируюсь, получаю код, копирую его в шаблон блога. И все работает.
Возникает вопрос: почему liveinternet.ru до сих пор не переделал код своего счетчика? Ведь такого рода компании должны быть впереди всех остальных?
P.S. На одном блогспотовском блоге заметил стоЯщий и работающий счетчик liveinternet. То есть это возможно. Посмотрел HTML код и вижу, что код работающего счетчина разделен на несколько строк, а я в своих пробах установки всегда пробовал всунуть "вытянутый в одну строку". Что ж попытка - непытка: беру код многострочный и пихаю в гаджет text/html. И... работает. В чем фишка - не понял, и нет времени разбираться. Главное, что работает:)
Ладно, прописываю код уже в шаблоне в самом html. При попытке сохранить шаблон выскакивает ошибка:
Не удалось проанализировать ваш шаблон, так как он неправильно сформирован. Убедитесь, что все элементы XML правильно закрыты.
Сообщение об ошибке в XML: Open quote is expected for attribute "{1}"
Понятно, liveinternet до сих пор с xml-ем не дружит. И не только с xml, а и вообще со стандартами Веба. А на дворе то 21-й век.
Черт с ним, с этим "живым интернетом". Пойдем к "Гуглу", любителю стандартов. Здесь: www.google.com/analytics регистрируюсь, получаю код, копирую его в шаблон блога. И все работает.
Возникает вопрос: почему liveinternet.ru до сих пор не переделал код своего счетчика? Ведь такого рода компании должны быть впереди всех остальных?
P.S. На одном блогспотовском блоге заметил стоЯщий и работающий счетчик liveinternet. То есть это возможно. Посмотрел HTML код и вижу, что код работающего счетчина разделен на несколько строк, а я в своих пробах установки всегда пробовал всунуть "вытянутый в одну строку". Что ж попытка - непытка: беру код многострочный и пихаю в гаджет text/html. И... работает. В чем фишка - не понял, и нет времени разбираться. Главное, что работает:)
Ярлыки:
блог,
посещение,
счетчик,
Analytics,
blog,
blogger.com,
Google,
liveinternet.ru,
xml
В сайте сделанном на Dotnetnuke постоянно пересоздается домен приложения: "The AppDomain shut down because of the hosting environment."
Создал сайт с использованием CMS DotNetNuke. На моей девелоперской машине он работал очень даже шустро. После размещения на американском хостинге заметил, что страницы, особенно первая, открываются очень долго. Смотрю журнал сайта и вижу, что домен приложения (appDomain) пересоздается несколько раз в минуту. Идут последовательные записи:
Application Shutting Down. Shutdown Details: The AppDomain shut down because of the hosting environment.
Application Started.
Пересоздание домена приложения операция не быстрая, она и приводит к уменьшению производительности сайта (медленной загрузке страниц).
Так как я не не делал никаких изменений в файлах (в т.ч. конфигурационнных) веб-приложения, а также во вложенных папках проекта, возник вопрос: почему и как с этим бороться?
Имея опыт работы с хостерами знаю, что бывает на хостинге, в борьбе за ресурсы, выставяют в конфигах время жизни сессии очень маленькое (sessionState.Timeout). Пишу приложение и проверяю: да, действительно сессия живет не более 10-ти секунд. Пишу письмо в саппорт с просьбой увеличить до 30-ти минут. Сделали.
Теперь вижу, что appDomain уже не умирает так часто, как раньше. Теперь это повторяется раз в 15-20 минут. Так как сайт еще никто не посещает и зная, что домен приложения может уничтожаться при неактивности, пишу windows-службу, которая с интервалом 5 минут делает HTTP GET запрос к сайту . Результат: AppDomain практически не пересоздается. Проблема решена.
Application Shutting Down. Shutdown Details: The AppDomain shut down because of the hosting environment.
Application Started.
Пересоздание домена приложения операция не быстрая, она и приводит к уменьшению производительности сайта (медленной загрузке страниц).
Так как я не не делал никаких изменений в файлах (в т.ч. конфигурационнных) веб-приложения, а также во вложенных папках проекта, возник вопрос: почему и как с этим бороться?
Имея опыт работы с хостерами знаю, что бывает на хостинге, в борьбе за ресурсы, выставяют в конфигах время жизни сессии очень маленькое (sessionState.Timeout). Пишу приложение и проверяю: да, действительно сессия живет не более 10-ти секунд. Пишу письмо в саппорт с просьбой увеличить до 30-ти минут. Сделали.
Теперь вижу, что appDomain уже не умирает так часто, как раньше. Теперь это повторяется раз в 15-20 минут. Так как сайт еще никто не посещает и зная, что домен приложения может уничтожаться при неактивности, пишу windows-службу, которая с интервалом 5 минут делает HTTP GET запрос к сайту . Результат: AppDomain практически не пересоздается. Проблема решена.
Подписаться на:
Сообщения (Atom)