Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Открыть новую тему     Написать ответ в эту тему

avkorets



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lazy KoT
ага спсиб разобрался уже =)
А не подскажешь где я тут ошибся...Обработчик срабатывае но письмо уходит только когда я закрываю приложение...

Цитата:
 
        public MainForm()
        {
            InitializeComponent();
            Run();
        }
 
        static void Run()
        {
            FileSystemWatcher watcher = new FileSystemWatcher();
            watcher.Path = ConfigurationManager.AppSettings["FolderPath"];
            watcher.IncludeSubdirectories = true;
            watcher.NotifyFilter = NotifyFilters.FileName;
            watcher.Filter = "*.txt";
            watcher.Created += new FileSystemEventHandler(OnChanged);
            watcher.EnableRaisingEvents = true;
        }
 
        private static void OnChanged(object sender, FileSystemEventArgs e)
        {
            if (Regex.IsMatch(e.FullPath, ".*ARCH.*")) return;
            if (Regex.IsMatch(e.FullPath, ".*IN.*"))
            {
                string sSubj = "";
...
                string sBody = @"сообщение: "+ e.Name;
                System.Net.Mail.MailMessagemmMailMessage = new System.Net.Mail.MailMessage();
...
                smtpClient.Send(mmMailMessage);
            }
 

Да и еще фильтру можно задать две маски типа или??
"*.txt$|*.doc$"
к тому же узнал, что ватчер пашет токо под NTFS..

Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 12:58 17-03-2009 | Исправлено: avkorets, 15:28 17-03-2009
Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
По поводу двух событий:

Цитата:
if you use a FileSystemWatcher component to monitor the creation of new files in a directory, and then test it by using Notepad to create a file, you may see two Created events generated even though only a single file was created. This is because Notepad performs multiple file system actions during the writing process. Notepad writes to the disk in batches that create the content of the file and then the file attributes. Other applications may perform in the same manner.Because FileSystemWatcher monitors the operating system activities, all events that these applications fire will be picked up.


Цитата:
Да и еще фильтру можно задать две маски
Нет, только создать новый Watcher.
По поводу System.Net.Mail.MailMessage - никогда не приходилось использовать. Вот что пишут люди:

Цитата:
...However, make sure you supply the right properties.
1 Set DeliveryMethod to Network
2 Set UseDefaultCredentials to false.


Цитата:
ватчер пашет токо под NTFS
MSDN об этом молчит... Нужно потестить, правда FAT32 под рукой нет, разве что флешке найду. Завтра гляну.
 
З.Ы. static методы это необходимость?

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 00:33 18-03-2009 | Исправлено: Lazy KoT, 00:34 18-03-2009
avkorets



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lazy KoT
от статика ушел..
про два события спсиб я уже понял =)
Ога создал новый ватчер для другого типа масок...
заюзал UseDefaultCredentials..Но видимо если его не указывать явно то он по умолчанию в фальс..
Вощем не помогло пока ничо по прежнему отпрака происходит тока после закрытия приложения...Самое интересное что если поставить точку останова на                 smtpClient.Send(mmMailMessage);
то оправка происходит..но где то застревает  =)
хотя в других моих решениях оправка с этой же машины происходит без проблем...
может это из-за ватчера?

Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 10:03 18-03-2009
Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
avkoretsНа FAT32 FileSystemWatcher работает.

Цитата:
оправка происходит..но где то застревает
Это как так? (:

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 11:38 18-03-2009
avkorets



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lazy KoT
Да не понимаю я  =)

Цитата:
 
                ....
                smtpClient.Send(mmMailMessage);
                MessageBox.Show("входящее " + e.Name + " " + e.ChangeType);
            }
 

вот впихнул месаджбокс так он отрабатывает сразу ,а письмо отсылается  почему то только после зарытия приложения..
мож ватчер попробовать застопить перед отправкой?
могу если интересно полный вариант (всмысле кусок с ватчером и отправкой) выложить...

Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 12:50 18-03-2009 | Исправлено: avkorets, 12:56 18-03-2009
Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
avkorets
Попробуй try-catch поставить, может exeption какой валится и тихарится.

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 13:30 18-03-2009
avkorets



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lazy KoT
да пробовал уже ..нифига...
фсе как по маслу отрабатывает....
да емае где ж затык....голова квадратная уже =)
 
опа ..чот она у меня вся стала отсылаться таким боком.....
Так либо обновления либо что то поменялось =)
бли все равно не понятно...Вот по идее приложение должно разослать окола 10 писем и не рассылает тока закрываю сразу 10 штук писем...Такое ощущение что скидываются куда то в буфер и этот буфер удерживается приложением..
Просто даж не понятно куда копать...В коде проблема или настройках фраймворка , а мошт винды..

Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 13:49 18-03-2009 | Исправлено: avkorets, 14:56 18-03-2009
Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
avkorets
Попробуй асинхронно отсылать через SendAsync и отследи через событие SendCompleted факт посылки.

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 00:37 19-03-2009
avkorets



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lazy KoT
гыгы ничо не понимаю =)
 

Цитата:
 
                ....
                string userState = "test message";
                smtpClient.SendAsync(mmMailMessage, userState);
                smtpClient.SendCompleted += new SendCompletedEventHandler(smtpClient_SendCompleted);
                MessageBox.Show("входящее " + e.Name + " " + e.ChangeType);
            }
        }
 
        void smtpClient_SendCompleted(object sender, AsyncCompletedEventArgs e)
        {
            MessageBox.Show("входящее отправлено");
        }
 

получаю два мессадж бокса...
входящее такойто файл и входящее отправлено =)
а письма не отправляются...только после закрытия приложения...Может настройки фрайм ворка поковырять?
 
Добавлено:
Кстате не подскажет никто как отследить откуда растут ноги у ошибки при запуске приложения???
У меня при запуске на другой машине (xp sp3) вываливается в ошибку (окно отправить не отправлять) ошибка не описана там..может где нужно подкуртить ннастройки безопасности?

Цитата:
 
EventType clr20r3, P1 filemodifier.exe, P2 1.0.0.158, P3 49c247a2, P4 system, P5 2.0.0.0, P6 471ebf0d, P7 36d5, P8 7f, P9 system.argumentexception, P10 NIL.
 

Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 12:48 19-03-2009 | Исправлено: avkorets, 17:17 19-03-2009
Dem_anywhere



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Попробуй послать без MailMessage, через  
 smtpClient.Send(string from, string recipients, string subject, string body)
Возможно - не может послать активный объект.

Всего записей: 230 | Зарегистр. 28-02-2006 | Отправлено: 15:55 19-03-2009
avkorets



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dem_anywhere
не таж фигня... =(

Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 16:14 19-03-2009
Dem_anywhere



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мда... Может попробовать smtpClient прибить после отправки?

Всего записей: 230 | Зарегистр. 28-02-2006 | Отправлено: 18:41 21-03-2009
avkorets



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dem_anywhere
а как прибить?

Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 13:16 22-03-2009
taiwan

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
avkorets
 
Как обычно, Thread.Terminate

Всего записей: 13 | Зарегистр. 14-09-2005 | Отправлено: 05:29 23-03-2009
AlexandrVS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ нужен совет! Пишу сейчас компонент, рубрикатор для карты города, хочется что бы работал максимально быстро, сам рубрикатор дерево хранится в БД, когда загружаю нужно отобразить первый уровень, в виде баннеров если такие есть, или просто название фирмы, дальше при клике отображаю все адреса фирмы, длина зависит от количества адресов и внутр инфы, пробывал работать с базой что то долго грузит, каким путем лучше пойти использовать Treeview или свое что то писать, очень важна скорость отрисовки компонентов.

Всего записей: 50 | Зарегистр. 04-05-2006 | Отправлено: 09:36 23-03-2009
avkorets



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dem_anywhere
taiwan
А можно пример кода именно с smtpClient`ом...
Чот у меня не получается =(
спасибо!

Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 15:07 23-03-2009
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AlexandrVS
C какой базой пробовал работать? Поставь сервер какой-нить, например, из простого MS SQL SERVER EXPRESS или FIREBIRD.  
Еще попробуй загружать следующие уровни твоего дерева в отдельном потоке.

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 06:37 24-03-2009
BaluBig



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AlexandrVS
Что бы не грузить все дерево сразу обычно пользуются такой схемой:
1. Загружается первый уровень дерева.
2. При загрузке для каждого узла первого уровня определяется наличие вложенных узлов.
3. Если вложенные узлы есть, то в дереве воздается фиктивный элемент (что бы юзер плюсик увидел).
4. По событию разворачивания узла дерева по такой же схеме подгружается список узлов, вложенных в разворачиваемый (фиктивный элемент, ясное дело, удаляется). Признаком того, что нужно загружать часть дерева при разворачивании узла является то, что в данный узел вложен один элемент и он является фиктивным элементом.
Загрузка  TreeView в отдельном потоке все равно потребует синхронизации с основным потоком (не получится обратиться к TreeView из другого потока), поэтому польза от этого дела сомнительна. Кроме того, нагрузку на сервер это не уменьшит.

Всего записей: 404 | Зарегистр. 06-02-2004 | Отправлено: 11:23 24-03-2009
085



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди,вот например есть  Membership.CreateUser-добавляет в хранилише данных нового юзера. А вот  что  за хранилище данных и как с ним  работать?? Мсдн читал, ничего не понял((
 
Добавлено:
заранее спасибо

Всего записей: 79 | Зарегистр. 17-09-2008 | Отправлено: 14:34 24-03-2009
085



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сам разобрался, вроде бы.Хранилище указываем в connectionStringName в разделе membership.Получается,что  для <asp:CreateUserWizard  указ. этот провайдер и всё работает само собой,надеюсь((

Всего записей: 79 | Зарегистр. 17-09-2008 | Отправлено: 20:49 24-03-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru