|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
День добрый, плиз хелп по проблеме! Есть класс для отправки почты Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
В контексте другого класса происходит перебор в foreach элементов DataRow, который содержит (ну пусть хотя бы ID темы письма - это не суть) и имя файла для отправки. Вызывается метод Send() Код: c# 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.
Весь глюк в том, что отправляются ВСЕ письма, кроме последнего письма, соответствующего последней строчке в DataRows. Причем и это письмо всетаки отправится, если после вызова Upl_USZN_NewInst() сразу закрыть программу. Если подождать с закрытием программы минуть 5, то письмо не отправится. В чем проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 08:54 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
exec88, нехорошо реализован класс MailSender в Dispose нужно сделать SC.Dispose() ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 09:21 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
Изопропилexec88, нехорошо реализован класс MailSender в Dispose нужно сделать SC.Dispose() В .Net 3.5 у него нет метода Dispose(). ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 09:28 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
exec88, Спасибо! Помогло. Перестроил под четверку, там есть Dispose(); А что еще некрасиво реализовано в классе? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 10:50 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
Изопропилнехорошо реализован класс MailSender +1. я наследую свой класс от этого шаблона Код: c# 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.
А вообще для приведенной реализации MailSender вообще Dispose не нужно Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 10:50 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
Arm79, спасибо А вообще для приведенной реализации MailSender вообще Dispose не нужно Я его сделал только, чтобы использовать MailSender в конструкции using ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 11:07 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
exec88, В методе Dispose нужно сделать Код: c# 1. 2.
(если уж сказали, что убираем за собой - так убираем до конца) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 11:19 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
exec88Я его сделал только, чтобы использовать MailSender в конструкции using Зачем? Если вы используете 3.5 (как изначально написали), то MailSender в конструкции using абсолютно бесполезен. Если > 3.5, то Код: c# 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 11:21 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
offtopic: метод "private void Upl_USZN_NewInst()" демонстрирует все "прелести" работы с DataTable :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 11:24 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
Прикол живёт в потрохах старого фреймворка. TCP соединения c SMTP сервером после отправки почты не закрываются а помещаются в служебный пул. Если приложение топикстартера закрывается быстро - соединение закрывает клиент,пул очищается штатным путём, сервер получает команду QUIT, всё в порядке SMTP сервер обычно не любит долго ждать и закрывает соединение на своём конце. При этом в случае топикстартера не получивши команды QUIT он зачем-то дропает последнее письмо. Главное - никакой мистики(просто сложилось несколько багофич) 2 exec88: При отправке одиночного письма при авторЕсли подождать с закрытием программы минуть 5, то письмо не отправится.с фреймворком 3.5 - письмо отправляется? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 11:29 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
так много раз делать не надо: R["FileUpload"].ToString() R["SubDivisionID"].ToString() один раз присвоили переменной и используете. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 11:41 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
Изопропилexec88, В методе Dispose нужно сделать Код: c# 1. 2.
(если уж сказали, что убираем за собой - так убираем до конца) Я это и сделал, только раньше проект был под 3.5, в этой версии метода Dispose Не было. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 12:04 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
ИзопропилПрикол живёт в потрохах старого фреймворка. TCP соединения c SMTP сервером после отправки почты не закрываются а помещаются в служебный пул. Если приложение топикстартера закрывается быстро - соединение закрывает клиент,пул очищается штатным путём, сервер получает команду QUIT, всё в порядке SMTP сервер обычно не любит долго ждать и закрывает соединение на своём конце. При этом в случае топикстартера не получивши команды QUIT он зачем-то дропает последнее письмо. Главное - никакой мистики(просто сложилось несколько багофич) 2 exec88: При отправке одиночного письма при авторЕсли подождать с закрытием программы минуть 5, то письмо не отправится.с фреймворком 3.5 - письмо отправляется? одиночного - да ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 12:08 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
Arm79так много раз делать не надо: R["FileUpload"].ToString() R["SubDivisionID"].ToString() один раз присвоили переменной и используете. Согласен, а что там еще не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 12:10 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
exec88, На диск точно нужно файлы записывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 12:18 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
exec88Согласен, а что там еще не так? Там всё не так, но более точно можно будет сказать, когда увижу код DM.Get_UplUsznFileList, DM.SP_Upload_Uszn сходу анализ на "100000" слишком громоздкий. может так проще, если всего два значения? Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 12:23 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
Изопропилexec88, На диск точно нужно файлы записывать? Как вариант. На диске создается пустышка - dbf. Потом SQL ная хэпэшка записывает в нее данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 12:38 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
exec88Как вариант. На диске создается пустышка - dbf. Потом SQL ная хэпэшка записывает в нее данные. ХП - на диск сама пишет? Жестоко. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 12:40 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
Arm79exec88Согласен, а что там еще не так? Там всё не так, но более точно можно будет сказать, когда увижу код DM.Get_UplUsznFileList, DM.SP_Upload_Uszn сходу анализ на "100000" слишком громоздкий. может так проще, если всего два значения? Код: c# 1. 2. 3. 4.
DM.Get_UplUsznFileList, DM.SP_Upload_Uszn это методы, которые возвращают результат выполнения ХП. По поводу анадиза на 100000 - вопрос вообще не принципиальный, т.к. там чуть позже будут не ID, а конкретные e-mail адреса и все сразу будет подставляться ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 12:45 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
Изопропилexec88Как вариант. На диске создается пустышка - dbf. Потом SQL ная хэпэшка записывает в нее данные. ХП - на диск сама пишет? Жестоко. А что - нормуль :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 12:46 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
exec88а конкретные e-mail адреса и все сразу будет подставляться Может, когда будет нормальная реализация, тогда и поговорим? exec88А что - нормуль :-) Не, не нормуль. Совсем. Берите прямо с базы данные, кидайте в стрим, и делайте сразу аттачмент Конструктор Attachment(Stream, ContentType) инициализирует новый экземпляр класса Attachment с указанным потоком и типом содержимого. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 12:51 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
Arm79exec88а конкретные e-mail адреса и все сразу будет подставляться Может, когда будет нормальная реализация, тогда и поговорим? exec88А что - нормуль :-) Не, не нормуль. Совсем. Берите прямо с базы данные, кидайте в стрим, и делайте сразу аттачмент Конструктор Attachment(Stream, ContentType) инициализирует новый экземпляр класса Attachment с указанным потоком и типом содержимого. А как определить ContentType для dbf файла определенной структуры и кодировки dos 866 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 13:09 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
exec88А как определить ContentType для dbf файла определенной структуры и кодировки dos 866 ? Content-type: application/octet-stream (от структуры не зависит, просто двоичные данные) кодировка задаётся собственно в самом dbf ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 13:43 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
Изопропилexec88А как определить ContentType для dbf файла определенной структуры и кодировки dos 866 ? Content-type: application/octet-stream (от структуры не зависит, просто двоичные данные) кодировка задаётся собственно в самом dbf так самого то dbf еще нет! А когда он уже будет с данными, то смысла со стримом уже нет, его можно приэттачить по имени файла. Или я неправильно понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 14:09 |
|
SmtpClient, проблема, вскипает мозк, помогите плиз
|
|||
---|---|---|---|
#18+
exec88так самого то dbf еще нет! А когда он уже будет с данными, то смысла со стримом уже нет, его можно приэттачить по имени файла. Или я неправильно понял? Вас вообще трудно понять :-) Вы сказали, что дбф формируется хранимкой. Соттветственно, все данные, необходимые для генерации, в этой хранимке доступны. Так почему же вместо ненормальной записи в файл просто не выдать эти данные клиенту в рекодсете? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 14:13 |
|
|
start [/forum/search_topic.php?author=22222222222&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 795ms |
total: | 946ms |
0 / 0 |