Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> httpModules и их тип 
:(
    Опции темы
priest08
Дата 11.6.2010, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 22.3.2008

Репутация: нет
Всего: нет



Я не сильно много работал с ASP... в общем
Есть Web.config. Среди всего прочего там содержится
Код

<?xml version="1.0"?>
.................
        <httpModules>
      <add name="TDtelekom" type="MoneyProcessing.Web.DTelekom.Threaddtelekomcr8, MoneyProcessing.Web"/>
        </httpModules>
.................

Еще есть класс, реализующий IHttpModule.
Код

/*Using все, что надо*/

namespace MoneyProcessing.Web.DTelekom
{
    class Threaddtelekomcr8 : IHttpModule
    {
        /*Поля всякие.*/
        #region IHttpModule members

        void IHttpModule.Init(HttpApplication application)
        {
            /*Создаю поток*/
        }

        void IHttpModule.Dispose()
        {
            /*Убиваю поток*/
        }

        #endregion

        public static void ResetProcessingTimer()
        {
            if (HttpContext.Current == null) return;
            if (HttpContext.Current.ApplicationInstance == null) return;

            foreach (object objModule in HttpContext.Current.ApplicationInstance.Modules)
            {
                Threaddtelekomcr8 processingDtelecomModule = objModule as Threaddtelekomcr8;

                if (processingDtelecomModule == null) continue;

                _log.Info("ResetProcessingDtelecomTimer - Set process event");

                try
                {
                    processingDtelecomModule._waitdtelecomHandle.Set();
                }
                catch (Exception e)
                {
                   _log.Error(e);
                }
            }
        }

    }
}

При запуске нормально вроде все - поток создается, отрабатывает и засыпает либо на 10 минут, либо пока его EventWaitHandle не освободит.
Метод ResetProcessingTimer() запускается, когда мне надо. Вот только
Код

if (processingDtelecomModule == null) continue;

срабатывает всегда и поток никогда не проснется, кроме как по таймеру. 
Среди модулей есть модуль TDtelekom. При переборе
Код

foreach (object objModule in HttpContext.Current.ApplicationInstance.Modules)

этот самый модуль находится.
В конфиге указан его тип - MoneyProcessing.Web.DTelekom.Threaddtelekomcr8. Но при
Код

Threaddtelekomcr8 processingDtelecomModule = objModule as Threaddtelekomcr8;

сам processingDtelecomModule всегда null.
Вопрос: почему..? smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0668 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.