Вот уже неделю наблюдаю в журнале сайта, сделанного на 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# ?!!
понедельник, 17 ноября 2008 г.
понедельник, 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/
Подписаться на:
Сообщения (Atom)
