Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > ASP.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2012, 18:45   #1
Евгений502
Новичок
Джуниор
 
Регистрация: 09.11.2012
Сообщений: 5
По умолчанию обработка исключений System.ArgumentException

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

С редактированием проблем нет, а при попытке скачать или удалить файл
вылетает следущее:

Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.

Сведения об исключении: System.ArgumentException: Путь содержит недопустимые знаки.


Код:
   protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "dwn")
        {

        
            string filename = e.CommandArgument.ToString();
            string path = MapPath(filename);
            byte[] bts = System.IO.File.ReadAllBytes(path);
      

            Response.Clear();
            Response.ClearHeaders();
            Response.AddHeader("Content-Type", "Application/octet-stream");
            Response.AddHeader("Content-Length", bts.Length.ToString());
            Response.AddHeader("Content-Disposition", "attachment; filename=" + filename);
            Response.BinaryWrite(bts);
            Response.Flush();
            Response.End();


        }

        if (e.CommandName == "delete")
        { 
            string fileName=Server.MapPath(e.CommandArgument.ToString()); 
            System.IO.File.Delete(fileName);
        }

    }
Подсажите, пожалуйста, как обрабатывать данные исключения?

Последний раз редактировалось Евгений502; 09.11.2012 в 18:52.
Евгений502 вне форума Ответить с цитированием
Старый 09.11.2012, 19:31   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

и как вы их хотите обработать?
eval вне форума Ответить с цитированием
Старый 09.11.2012, 21:53   #3
Евгений502
Новичок
Джуниор
 
Регистрация: 09.11.2012
Сообщений: 5
По умолчанию

Я только начинаю изучение, надо сделать так, чтобы по нажатию на кнопки dwn, delete файл соответственно скачивался или удалялся
Евгений502 вне форума Ответить с цитированием
Старый 09.11.2012, 22:18   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

так посмотрите какие такие знаки пришли в файлнаме
eval вне форума Ответить с цитированием
Старый 09.11.2012, 23:59   #5
Евгений502
Новичок
Джуниор
 
Регистрация: 09.11.2012
Сообщений: 5
По умолчанию

Трассировка стека:

Код:


[ArgumentException: Путь содержит недопустимые знаки.]
   System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional) +10631190
   System.IO.Path.Combine(String path1, String path2) +42
   System.Web.Configuration.UserMapPath.GetPhysicalPathForPath(String path, VirtualDirectoryMapping mapping) +114
   System.Web.Configuration.UserMapPath.GetPathConfigFilename(String siteID, VirtualPath path, String& directory, String& baseName) +82
   System.Web.Configuration.UserMapPath.MapPath(String siteID, String path) +58
   System.Web.Hosting.HostingEnvironment.MapPathActual(VirtualPath virtualPath, Boolean permitNull) +315
   System.Web.Hosting.HostingEnvironment.MapPathInternal(VirtualPath virtualPath) +34
   System.Web.VirtualPath.MapPathInternal() +4
   System.Web.HttpRequest.MapPath(VirtualPath virtualPath, VirtualPath baseVirtualDir, Boolean allowCrossAppMapping) +110
   System.Web.HttpServerUtility.MapPath(String path) +104
   UmkPages_diplom.GridView1_RowCommand(Object sender, GridViewCommandEventArgs e) in c:\WebSites\IR(продолжить отсюда)\diplom\diplom.aspx.cs:66
   System.Web.UI.WebControls.GridView.OnRowCommand(GridViewCommandEventArgs e) +111
   System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +73
   System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs e) +89
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
   System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e) +88
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
   System.Web.UI.WebControls.ImageButton.OnCommand(CommandEventArgs e) +121
   System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument) +180
   System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724
Евгений502 вне форума Ответить с цитированием
Старый 10.11.2012, 00:07   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

Да не, трасировка оно конечно хорошо, но хотелось бы увидеть сами данные.
Посмотрре что находится в e.CommandArgument.ToString()
eval вне форума Ответить с цитированием
Старый 10.11.2012, 00:49   #7
Евгений502
Новичок
Джуниор
 
Регистрация: 09.11.2012
Сообщений: 5
По умолчанию

CommandArgument='<% Eval("FileUrl") %>'

имеется ввиду это?
(вложения)
Изображения
Тип файла: jpg 11.jpg (22.0 Кб, 128 просмотров)
Евгений502 вне форума Ответить с цитированием
Старый 10.11.2012, 01:17   #8
Евгений502
Новичок
Джуниор
 
Регистрация: 09.11.2012
Сообщений: 5
По умолчанию

Разобрался! надо было поставить #
CommandArgument='<%#Eval("FileUrl") %>'

Спасибо!
Евгений502 вне форума Ответить с цитированием
Старый 11.11.2012, 19:21   #9
kocahoctpa
Новичок
Джуниор
 
Регистрация: 11.11.2012
Сообщений: 4
По умолчанию

11.jpj

tam nasvania file ne pravilno!
Nada isminit "~/" s "./", ok?

Replace the tilde with a "."

Best regards, Andrea Bruno
kocahoctpa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка исключений с пoмощью структурированной обработки исключений Smart Visual C++ 3 01.11.2012 15:38
Обработка исключений - C++ Snorlax712 Помощь студентам 4 08.05.2012 18:50
обработка исключений user666 Помощь студентам 36 27.08.2010 18:00
Обработка исключений _-Re@l-_ Общие вопросы Delphi 3 17.06.2010 08:53
Обработка исключений try... except Kati Помощь студентам 5 07.03.2010 10:18