Времето за изчакване на .Net уеб услугата на машината на интернет сървъра

Ние разработваме приложение, което качва големи файлове през интернет. Размерът на файла преди компресиране с DotNetZip е около 18 GB и около 4 GB след компресиране. Файлът се прехвърля от клиентска машина към целева сървърна машина чрез защитен ftp без проблем.

След това клиентът извиква .Net уеб услуги, хоствани от машината на целевия сървър, за да копира файл от корена на ftp в директорията за съхранение, като изчислява хеша на файла и извиква DotNetZip за разархивиране на файла.

Уеб услугите работят добре, когато клиентската машина и целевият сървър, които хостват уеб услугите, са в интранет.

Въпреки това, когато се използва същата клиентска машина, но друга производствена целева сървърна машина, която хоства уеб услуги в Интернет, уеб услугите имат „Изключение за прекратяване на нишката“ при копиране, хеширане и разархивиране на 4GB файл.

И двете сървърни машини са Windows 2003 сървър с SP2, имат инсталирани едни и същи компоненти, имат един и същ IIS ver6.0 и са конфигурирани по същия начин да използват ASP .Net 2.0. Копирахме web.config, machine.config, MetaBase.xml от машина за интранет сървър на машина за интернет сървър.

Променихме: 1. Код от страна на клиента: Време за изчакване на прокси на уеб услуга в код 7200000 2. Файл web.config на сървърната машина: (1). (2). 3. Сървърна машина machine.config файл: (1). 4. Сървърна машина MetaBase.xml: (1). AspMaxRequestEntityAllowed="1073741824" 5. В IIS версия 6, уеб сайт -> раздел услуга ->Режим на изолация, е отметнато „Изпълнение на WWW услуга в режим на изолация на IIS 5.0“.

Текущото ни разбиране за проблема на сървърната машина в Интернет е, че работният процес на .Net recycl при стойност на изчакване по подразбиране причинява изключение „Нишката се прекратява“, дори ако нишката продължава да завършва копирането на файла.

Ако нашето разбиране е правилно, тогава защо същата конфигурация за изчакване работи на сървърната машина в интранет? Как да накараме конфигурацията за изчакване да работи на нашата производствена сървърна машина в Интернет?


person Tina Guo    schedule 15.02.2012    source източник


Отговори (1)


Загубих се. Имате 2 сървъра. Единият има уеб услуга, която разархивира много голям файл и го копира на втори сървър.

Някъде по пътя изтича времето. Правилно ли е това?

Ако това е вярно, тогава бих погледнал използването на мрежата, докато копието на файла върви. Предполагам, че прехвърлянето на файла между машините отнема много време.

Споменавате, че единият сървър е вътре в защитната стена, а другият е извън нея. Колко бърза е връзката между тези два сървъра? Ако е само 10Mb, значи сте сериозно замаяни.

person NotMe    schedule 15.02.2012
comment
Благодаря ви за отговора. Нека изясня конфигурацията. В него участват 3 машини. - person Tina Guo; 16.02.2012
comment
Благодаря ви за отговора. Имам сървър A хоства уеб услуга, сървър B съхранява файлове. A и B са в една и съща мрежа в Интернет. След като махнах отметката от Run WWW в режим на изолация в IIS 5.0, използвайки набор от приложения, нямам проблем с копирането, хеширането, разархивирането на 4GB файл на сървър A. Но все пак получих изключение Thread was aborted, ако копирам/хеш/разархивирам файл от A до B. Защо моята конфигурация за изчакване не работи, когато използвам сървър B? - person Tina Guo; 16.02.2012