Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
22.08.2014, 11:40
|
|||
---|---|---|---|
|
|||
Не могу удалить файл!!! Что делать? |
|||
#18+
Dim atcname per = tr.ReadLine() tr.Close() per = Right(per, Len(per) - 7) myemail = Trim(EMAIL(per)) mypwd = Trim(PWD(per)) atcname = GetAttach(per) If atcname <> "" Then PrintLog2("Есть что отправлять") Else alreadyProcessing = False PrintLog2("Нечего отправлять") Exit Try End If Dim m As New MailMessage _ (myemail, "test@mail.ru", "SCREENS", atcname) m.Attachments.Add(New System.Net.Mail.Attachment(atcname)) Dim sc As SmtpClient = New SmtpClient sc.Host = "smtp.mail.ru" sc.Port = 25 ' sc.EnableSsl = True sc.Timeout = 900000 sc.UseDefaultCredentials = False sc.Credentials = New NetworkCredential(myemail, mypwd) 'sc.Send(mm) sc.Send(m) PrintLog2("Сообщение отправлено") m.Dispose() sc.Dispose() My.Computer.FileSystem.DeleteFile(atcname) PrintLog2("Файл архива удален") ____________________________ Здесь отправляется файл по емэйл, после отправки файл должен удаляться. На некоторых компах с хорошим нетом, дает удалить файл вложения после отправки. На другом (пока на одном выявилось), сообщение отправляет, пишет в лог сообщение отправлено но зависает на удалении файла вложения. Что делать? Поставил dispose , может не их а что-то другое нужно ставить? Что может блокировать файл вложения ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.08.2014, 12:26
|
|||
---|---|---|---|
|
|||
Не могу удалить файл!!! Что делать? |
|||
#18+
Таймер запущен ___22.08.2014 11:49:12 Мы-сервер, пытаемся отправить почту Есть что отправлять Сообщение отправлено Файл архива удален Таймер запущен ___22.08.2014 11:54:12 Мы-сервер, пытаемся отправить почту Есть что отправлять Сообщение отправлено Файл архива удален Таймер запущен ___22.08.2014 11:56:08 Мы-сервер, пытаемся отправить почту Есть что отправлять Сообщение отправлено __________________________ и вот так останавливается и зависает , в смысле исключения не возникает ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.08.2014, 13:33
|
|||
---|---|---|---|
Не могу удалить файл!!! Что делать? |
|||
#18+
crazyara, Thread.Sleep секунды на три перед удалением .. неотесанный костыль, но работает ... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.08.2014, 15:34
|
|||
---|---|---|---|
|
|||
Не могу удалить файл!!! Что делать? |
|||
#18+
crazyara Что может блокировать файл вложения Блокирует процесс отправки сообщения. crazyara Что делать? Удалять файл после завершения отправки сообщения . ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.08.2014, 16:06
|
|||
---|---|---|---|
Не могу удалить файл!!! Что делать? |
|||
#18+
crazyara, блокировка должна сниматься с файла после вызова Dispose() для MailMessage. Я бы переписал код используя блок Using Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.08.2014, 21:04
|
|||
---|---|---|---|
|
|||
Не могу удалить файл!!! Что делать? |
|||
#18+
bazile, зачем учить человека не совсем хорошему? А ежели письмо не будет отослано, а он всё равно файл грохнет ?! А так глядишь и работу в асинхронном режиме изучит и поймёт, что не всё так просто в датском королевстве... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.08.2014, 22:05
|
|||
---|---|---|---|
|
|||
Не могу удалить файл!!! Что делать? |
|||
#18+
Честно сказать, "странноватая" реализация работы с вложениями, которая после формирования тела письма не закрывает потоки, работающие с вложениями... Можно было-бы освобождать ресурсы после того как они уже не нужны, тело письма-то сформировано... Исходник SmtpClient и далее по ссылкам... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.08.2014, 00:13
|
|||
---|---|---|---|
Не могу удалить файл!!! Что делать? |
|||
#18+
Alex Kuznetsovbazile, зачем учить человека не совсем хорошему? А ежели письмо не будет отослано, а он всё равно файл грохнет ?! Если письмо не отправится, то метод Send() сгенерирует исключение и файл не будет удален. Ты ведь сам неудачный совет дал. Событие SendCompleted сработает только при вызове SendAsync(), а ТС использует Send(). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.08.2014, 06:20
|
|||
---|---|---|---|
|
|||
Не могу удалить файл!!! Что делать? |
|||
#18+
bazileAlex Kuznetsov... Если письмо не отправится, то метод Send() сгенерирует исключение и файл не будет удален.Это то да, но где в таком случае перехват исключения? bazileТы ведь сам неудачный совет дал. Событие SendCompleted сработает только при вызове SendAsync(), а ТС использует Send().И ещё написал: Alex KuznetsovА так глядишь и работу в асинхронном режиме изучит и поймёт, что не всё так просто в датском королевстве... Ладно, к чему спорить, и так и так можно, просто нужно быть уверенным, что процесс отправки письма завершён и ресурсы освобождены. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.08.2014, 13:32
|
|||
---|---|---|---|
|
|||
Не могу удалить файл!!! Что делать? |
|||
#18+
Спасибо всем! Сделал using, но теперь возникает ошибка при отправке больших файлов интернет плохой (100 кб отправлянтся нормально, 1 мб ошибка) Protected Sub tt_elapsed(ByVal sender As System.Object, ByVal e As System.Timers.ElapsedEventArgs) Try If alreadyProcessing2 Then Exit Sub End If alreadyProcessing2 = True Dim path As String = "c:\logXXX.txt" Dim mypwd As String Dim per As String Dim myemail As String 'Dim tr As StreamReader = New StreamReader("c:\kurx\report.ini") Dim tr As StreamReader = New StreamReader(My.Application.Info.DirectoryPath & "\" & "report.ini") 'My.Application.Info.DirectoryPath & "\" & Dim atcname per = tr.ReadLine() tr.Close() per = Right(per, Len(per) - 7) myemail = Trim(EMAIL(per)) mypwd = Trim(PWD(per)) atcname = GetAttach(per) If IsServer(per) <> "1" Then alreadyProcessing2 = False Exit Sub End If PrintLog2("Мы-сервер, пытаемся отправить почту") If atcname <> "" Then PrintLog2("Есть что отправлять___" & Date.Now.ToString & " файл " & atcname) Else alreadyProcessing2 = False PrintLog2("Нечего отправлять__" & Date.Now.ToString) Exit Try End If ' Dim m As New MailMessage _ ' (myemail, "test@mail.ru", "SCREENS", atcname) ' m.Attachments.Add(New System.Net.Mail.Attachment(atcname)) Using m As New MailMessage _ (myemail, "yug_test@mail.ru", "SCREENS", atcname) m.Attachments.Add(New System.Net.Mail.Attachment(atcname)) PrintLog2("К сообщению добавлено вложение в ___" & Date.Now.ToString & " файл " & atcname) Using sc As SmtpClient = New SmtpClient sc.Host = "smtp.mail.ru" sc.Port = 25 ' sc.EnableSsl = True sc.Timeout = 900000 sc.UseDefaultCredentials = False sc.Credentials = New NetworkCredential(myemail, mypwd) sc.Send(m) PrintLog2("Сообщение отправлено____" & Date.Now.ToString) m.Dispose() sc.Dispose() End Using End Using Thread.Sleep(300000) My.Computer.FileSystem.DeleteFile(atcname) PrintLog2("Файл архива удален____" & Date.Now.ToString) alreadyProcessing2 = False Catch ex As SmtpException ' WebException InnerException, PrintLog2("Произошла ошибка при отправке ___" & Date.Now.ToString) PrintLog2(ex.ToString) Dim inner As Exception = ex.GetBaseException PrintLog2(inner.Message.ToString) PrintLog2("__________________") alreadyProcessing2 = False End Try End Sub возникает такая ошибка, из лог файла Мы-сервер, пытаемся отправить почту Есть что отправлять___25.08.2014 13:22:52 файл \\serverN\SCREENS\SERVERN_192.168.1.2_19082014.7z К сообщению добавлено вложение в ___25.08.2014 13:22:52 файл \\serverN\SCREENS\SERVERN_192.168.1.2_19082014.7z Произошла ошибка при отправке ___25.08.2014 13:22:53 System.Net.Mail.SmtpException: Failure sending mail. ---> System.IndexOutOfRangeException: Index was outside the bounds of the array. at System.Net.Base64Stream.EncodeBytes(Byte[] buffer, Int32 offset, Int32 count, Boolean dontDeferFinalBytes, Boolean shouldAppendSpaceToCRLF) at System.Net.Base64Stream.Write(Byte[] buffer, Int32 offset, Int32 count) at System.Net.Mime.MimePart.Send(BaseWriter writer) at System.Net.Mime.MimeMultiPart.Send(BaseWriter writer) at System.Net.Mail.Message.Send(BaseWriter writer, Boolean sendEnvelope) at System.Net.Mail.SmtpClient.Send(MailMessage message) --- End of inner exception stack trace --- at System.Net.Mail.SmtpClient.Send(MailMessage message) at MonitorScreens.MonitorKurier.tt_elapsed(Object sender, ElapsedEventArgs e) Index was outside the bounds of the array. т.е. то возникает, то нет эта ошибка прчем возникает через секунду после обработки ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.08.2014, 13:48
|
|||
---|---|---|---|
|
|||
Не могу удалить файл!!! Что делать? |
|||
#18+
Просто создаются архивы, 2- 10 мб, где-то и 10 нормально уходит, но в некоторых филиалах скорость 128 кбит, и из-за этого наверное получается ошибка. Можно, конечно разюивать архивы на тома и создавать больше сообщений, но нет ли другого выхода. Таймаут я поставил, может еще что? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.08.2014, 14:08
|
|||
---|---|---|---|
|
|||
Не могу удалить файл!!! Что делать? |
|||
#18+
crazyaraПросто создаются архивы, 2- 10 мб, где-то и 10 нормально уходит, но в некоторых филиалах скорость 128 кбит, и из-за этого наверное получается ошибка. Можно, конечно разюивать архивы на тома и создавать больше сообщений, но нет ли другого выхода. Таймаут я поставил, может еще что?Судя по сообщению об ошибке, ни скорость ни таймаут здесь ни причём. Ошибка связана с выходом за пределы массива во время декодирования файла. Попробуйте разбить на куски по 1 Мб, должно быстрее отрабатывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.08.2014, 17:30
|
|||
---|---|---|---|
Не могу удалить файл!!! Что делать? |
|||
#18+
crazyara, как оказалось это известная проблема - FIX: "Failure sending mail" error message when you send an email message by using a .NET Framework 4.0-based application that uses the "System.Net.Mail.SmtpClient" class if the email attachment is larger than 3 MB Запроси хотфикс у Microsoft или сделай размер аттачмента меньше 3 Мб P.S. Используй тег SRC для оформления кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&mobile=1&tid=1402550]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 332ms |
total: | 469ms |
0 / 0 |