я получил размещенный на iis сервис wcf с функцией, которая получает файл и сохраняет его на сервере
Я провел некоторый тест с файлом 6,5 Мб, мне потребовалось загрузить его 4,6 мин, хотя он должензаймет около 2 минут,
Кто-нибудь знает, как я могу ускорить процесс?мне действительно нужно, чтобы загрузка была быстрее
ServiceManager.UploadFile(fileName, FilesHelper.FileToByteArray(filePath));
public static ServiceCallResult UploadFile(string fileName, byte[] data)
{
Stopwatch sw = Logger.StopwatchInit();
VsServiceClient vs = new VsServiceClient();
EndPointSelector(vs);
vs.InnerChannel.OperationTimeout = new TimeSpan(0, 10, 0);
try
{
bool result = vs.UploadMediaFile(fileName, data);;
sw.StopAndLog(fileName);
return new ServiceCallResult() { IsSuccessful = result };
}
catch (Exception ex)
{
sw.StopAndLog(fileName,ex);
return new ServiceCallResult() { IsSuccessful = false , Message = ex.Message };
}
finally
{
vs.Close();
}
}
<webHttpBinding>
<binding name="NewBinding0" maxBufferSize="160000000" maxBufferPoolSize="160000000"
maxReceivedMessageSize="160000000">
<readerQuotas maxDepth="160000000" maxStringContentLength="160000000"
maxArrayLength="160000000" maxBytesPerRead="160000000" maxNameTableCharCount="160000000" />
</binding>
</webHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="vsAjaxBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="vsServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<services>
<service behaviorConfiguration="vsServiceBehavior" name="VsService">
<endpoint address="" behaviorConfiguration="vsAjaxBehavior" binding="webHttpBinding"
bindingConfiguration="NewBinding0" contract="VsService" />
</service>
Веб-сервис работает на сервере малых экземпляров EC2 с iis7, код внутри сервисной функции занимает менее 1 секунды, поэтому все потраченное впустую время находится на клиентепередача на сервер.
Другое дело, сервер не используется, поэтому большую часть времени его использует только один пользователь ...
Есть идеи?
Спасибо