Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / При отправке файла (FileUpload ) но блокируется?!? / 7 сообщений из 7, страница 1 из 1
15.09.2006, 14:21
    #33990381
Kroket
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При отправке файла (FileUpload ) но блокируется?!?
Web - форма.
На ней контрол FileUpload.
Выбираю файл - екселевский документ.
Отправляю на сервер. Сервер принимает и начинает обрабатывать.
Открывает его, читает данные и заливает в БД.
Если нет ошибок все нормально.
Можно его сколько угодно раз выбирать и вновь заливать на сервер.

Но если екселевский файл косячный, то мое Web - приложение выдает ошибку и прерывает процесс.
Все через блок Try .. Catch ... End Try
То есть приложение дает уведомлению юзеру, что файл некорректный, мол повторите снова.

Если снова пытаешся выбрать этот файл, то в следующий раз пишет:
the process cannot access the file ... because it is being used by another process

Я так понимаю, что этот файл заблокирован. После этого и удалить его нельзя.

Как этого избежать программно?
Чтобы если этот файл не того формата, освободить ссылки на него?
Я не понял где,в каком процессе он виснет?

Заранее благодарен за ответ.
...
Рейтинг: 0 / 0
15.09.2006, 14:23
    #33990392
Dmitry Uvarov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При отправке файла (FileUpload ) но блокируется?!?
было бы неплохо показать свой чудо-код заливки файлаhttp://ln.com.ua/~openxs/articles/smart-questions-ru.html
...
Рейтинг: 0 / 0
15.09.2006, 15:49
    #33990756
Kroket
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При отправке файла (FileUpload ) но блокируется?!?
Код: plaintext
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.
    Protected Sub Chudo_Yude_Code()
        Try

            Dim Path As String
            Path = Request.MapPath(Request.ApplicationPath) & "\Files\" & fileUploadMy.FileName

            fileUploadMy.PostedFile.SaveAs(Path)

            Dim CnnExcel As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Path & ";Extended Properties=Excel 8.0;"

            Dim cnnEx As New OleDb.OleDbConnection(CnnExcel)
            cnnEx.Open()

            Dim ds As New DataSet
            Dim strSQL As String

            strSQL = "select * from [Лист1$]"

            Dim da As New OleDb.OleDbDataAdapter(strSQL, cnnEx)
            ds.Clear()
            da.Fill(ds, "excel")

            Dim tbl As DataTable = ds.Tables("excel")

	    ...
		' Дальше код по закачке в БД
		' и если здесь возникает ошибка
		' то екселевский файл блокируется
		' если ошибки нет, то все нормально
	    ...

        Catch ex As Exception
            Select Case ex.Message
                Case Else
                    Response.Write(ex.Message)
            End Select

        End Try


End Sub
...
Рейтинг: 0 / 0
17.09.2006, 09:22
    #33992272
Kroket
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При отправке файла (FileUpload ) но блокируется?!?
Неужели никто не сталкивался???
...
Рейтинг: 0 / 0
18.09.2006, 09:32
    #33993083
Kroket
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При отправке файла (FileUpload ) но блокируется?!?
Такое ощущение, что ни у кого, никогда не возникает тех проблем, которые появляются у меня.

Я наверное избранный :)
...
Рейтинг: 0 / 0
18.09.2006, 10:00
    #33993119
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При отправке файла (FileUpload ) но блокируется?!?
честно, не сталкивался... про избранность - это хорошо - чувство юмора на месте, значит и проблему решить можно ;)
как происходит закачка - интересно то место, которое просто закоментировано?
есть думка, что там коннект закрывается в случае успеха, а в случае неудачи, попадаем в блок catch где коннект так и остаётся открытым.
есть такая фича как finally в блоке Try Catch Finally туда закинь операции по высвобождению ресурса - он будет исполнятся в любом случае...
пример
Код: plaintext
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.
Try
            Dim CnnExcel As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Path & ";Extended Properties=Excel 8.0;"

            Dim cnnEx As New OleDb.OleDbConnection(CnnExcel)
            cnnEx.Open()

            Dim ds As New DataSet
            Dim strSQL As String

            strSQL = "select * from [Лист1$]"

            Dim da As New OleDb.OleDbDataAdapter(strSQL, cnnEx)
            da.Fill(ds, "excel")

            Dim tbl As DataTable = ds.Tables("excel")

	    ...
		' Дальше код по закачке в БД
		' и если здесь возникает ошибка
		' то екселевский файл блокируется
		' если ошибки нет, то все нормально
	    ...

        Catch ex As Exception
            Select Case ex.Message
                Case Else
                    Response.Write(ex.Message)
            End Select
        Finally
            If cnnEx.State=Open Then cnnEx.Close
            'за особую точность синтаксиса не ручаюсь - положись на intelisence
        End Try
...
Рейтинг: 0 / 0
18.09.2006, 11:26
    #33993363
Kroket
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При отправке файла (FileUpload ) но блокируется?!?
Спасибо буду пробовать.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / При отправке файла (FileUpload ) но блокируется?!? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]