Как сделать ?
От: Аноним  
Дата: 27.12.01 12:02
Оценка:
всем привет.

на сервере лижит куча zip-файлов обозванных 1.zip, 2.zip и т.д. Мне надо написать что-то, что
1) при попытке скачать файл с сервера у юзера в окошке Save as было другое название (берется из базы).
2) ограничивать скорость скачки в зависимости от типа юзера.

1-е решается ISAPI filter'ом по событию OnURLMap.
2-е вообще нет соображений, кроме как котролировать OnSendRawData в том-же фильтре.

Нельзя-ли это как-то написать с помощью ISAPI extension ?
помогите, да ?
Re: Как сделать ?
От: Lexey Россия  
Дата: 27.12.01 12:14
Оценка:
Здравствуйте Аноним, Вы писали:

А>всем привет.


А>на сервере лижит куча zip-файлов обозванных 1.zip, 2.zip и т.д. Мне надо написать что-то, что

А>1) при попытке скачать файл с сервера у юзера в окошке Save as было другое название (берется из базы).
А>2) ограничивать скорость скачки в зависимости от типа юзера.

А>1-е решается ISAPI filter'ом по событию OnURLMap.

А>2-е вообще нет соображений, кроме как котролировать OnSendRawData в том-же фильтре.

А>Нельзя-ли это как-то написать с помощью ISAPI extension ?


Первое можно. Смотреть в сторону заголовков Content-Type и Content-Disposition.
Второе я себе вообще слабо представляю. Разве что ты будешь специально вводить задержки при отправке данных.
Re[2]: Как сделать ?
От: Аноним  
Дата: 28.12.01 10:01
Оценка:
Здравствуйте Lexey, Вы писали:

L>Здравствуйте Аноним, Вы писали:


А>>всем привет.


А>>на сервере лижит куча zip-файлов обозванных 1.zip, 2.zip и т.д. Мне надо написать что-то, что

А>>1) при попытке скачать файл с сервера у юзера в окошке Save as было другое название (берется из базы).
А>>2) ограничивать скорость скачки в зависимости от типа юзера.

А>>1-е решается ISAPI filter'ом по событию OnURLMap.

А>>2-е вообще нет соображений, кроме как котролировать OnSendRawData в том-же фильтре.

А>>Нельзя-ли это как-то написать с помощью ISAPI extension ?


L>Первое можно. Смотреть в сторону заголовков Content-Type и Content-Disposition.

L>Второе я себе вообще слабо представляю. Разве что ты будешь специально вводить задержки при отправке данных.

Кажется придумал... Походу 2-й пункт надо реализовать не с помощью TransferFile'а а наверное читать файл обычным образом, и писать WriteClient'ом.
А вот надо-ли для этого новый поток заводить интересно ? присоветуйте чё-нить.
Re[3]: Как сделать ?
От: Lexey Россия  
Дата: 28.12.01 13:54
Оценка:
Здравствуйте Аноним, Вы писали:

А>Здравствуйте Lexey, Вы писали:


L>>Здравствуйте Аноним, Вы писали:


А>>>всем привет.


А>>>на сервере лижит куча zip-файлов обозванных 1.zip, 2.zip и т.д. Мне надо написать что-то, что

А>>>1) при попытке скачать файл с сервера у юзера в окошке Save as было другое название (берется из базы).
А>>>2) ограничивать скорость скачки в зависимости от типа юзера.

А>>>1-е решается ISAPI filter'ом по событию OnURLMap.

А>>>2-е вообще нет соображений, кроме как котролировать OnSendRawData в том-же фильтре.

А>>>Нельзя-ли это как-то написать с помощью ISAPI extension ?


L>>Первое можно. Смотреть в сторону заголовков Content-Type и Content-Disposition.

L>>Второе я себе вообще слабо представляю. Разве что ты будешь специально вводить задержки при отправке данных.

А>Кажется придумал... Походу 2-й пункт надо реализовать не с помощью TransferFile'а а наверное читать файл обычным образом, и писать WriteClient'ом.

А>А вот надо-ли для этого новый поток заводить интересно ? присоветуйте чё-нить.

Посмотри мою статью про ISAPI-расширения. Там приведены рекоммендации лучших собаководов (пул ниток в ISAPI-расширении).
Re[4]: Как сделать ?
От: im  
Дата: 31.01.02 16:08
Оценка:
А>>>>2) ограничивать скорость скачки в зависимости от типа юзера.
А>>>>2-е вообще нет соображений, кроме как котролировать OnSendRawData в том-же фильтре.
А>>>>Нельзя-ли это как-то написать с помощью ISAPI extension ?
L>>>Второе я себе вообще слабо представляю. Разве что ты будешь специально вводить задержки при отправке данных.

А>>Кажется придумал... Походу 2-й пункт надо реализовать не с помощью TransferFile'а а наверное читать файл обычным образом, и писать WriteClient'ом.

А>>А вот надо-ли для этого новый поток заводить интересно ? присоветуйте чё-нить.

L>Посмотри мою статью про ISAPI-расширения. Там приведены рекоммендации лучших собаководов (пул ниток в ISAPI-расширении).



Если мы отвечаем WriteCliento-m ,то все посылается но если во время передач клиетт отменяет прием файла то в isapi
не происходит выход из WriteClient .Как это обработать.Пробовал делать это с асинхронной передачей но происходит тоже самое. Как обработать отказ клиента? Что то ведь передается, когда клиент нажимает кансель????
Re[5]: Как сделать ?
От: Lexey Россия  
Дата: 01.02.02 09:54
Оценка:
Здравствуйте im, Вы писали:

im>Если мы отвечаем WriteCliento-m ,то все посылается но если во время передач клиетт отменяет прием файла то в isapi

im>не происходит выход из WriteClient .Как это обработать.Пробовал делать это с асинхронной передачей но происходит тоже самое. Как обработать отказ клиента? Что то ведь передается, когда клиент нажимает кансель????

AFAIK, нет такой возможности. Если соединение рвется правильно (т.е. посылкой TCP-пакета, разрывающего соединение), то отловить такое можно (но IIS не предоставляет такого механизма, скорее всего он просто вернет ошибку на WriteClient), а вот если соединение рвется в тихую (обрыв линии), то тут уже никак не определишь его окончание — только по таймауту.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.