2016-07-26 1 views
-2

Я пытаюсь создать поток из файла или строки, но я получаю следующую ошибку.Невозможно создать STREAM из файла или строки

ReadTimeout = 'stream.ReadTimeout' threw an exception of type 'System.InvalidOperationException' 
WriteTimeout = 'stream.WriteTimeout' threw an exception of type 'System.InvalidOperationException' 

Я нашел образец кода для создания потока. Кажется, но это дает ошибку выше

Кстати, я пытаюсь отправить данные в Amazon MWS Feed Api. Вот мой полный код ниже.

using (Stream s = GenerateStreamFromString("D:\\feed.xml")) 
{ 
     SubmitFeedRequest request = new SubmitFeedRequest(); 
     request.Merchant = merchantId; 
     request.MarketplaceIdList = new IdList(); 
     request.MarketplaceIdList.Id = new List<string>(new string[] { marketplaceId }); 
     request.FeedContent = s; 
     request.ContentMD5 = MarketplaceWebServiceClient.CalculateContentMD5(request.FeedContent); 
     //request.FeedContent.Position = 0; 

     request.FeedType = "_POST_INVENTORY_AVAILABILITY_DATA_"; 

     SubmitFeedSample.InvokeSubmitFeed(service, request); 
    } 


public static Stream GenerateStreamFromString(string s) 
{ 
    MemoryStream stream = new MemoryStream(); 
    StreamWriter writer = new StreamWriter(stream); 
    writer.Write(s); 
    writer.Flush(); 
    stream.Position = 0; 
    return stream; 
} 

Что я делаю неправильно? Я прочитал много форумов, но я не понимаю.

Это дает ошибку видно на изображении ниже

enter image description here

+0

Что такое '' '? Является ли это именем файла или фактическим содержимым потока? –

+0

также, ваш код работает на моей машине. есть ли другой код, который я не вижу? Когда генерируется исключение, оно может создать точку останова для вас. Знаете ли вы, в какой строке это происходит? –

+0

Я передаю строку (содержание) функции выше –

ответ

0

класса MemoryStream не поддерживает TimeOut. Вы можете проверить его, проверив свойство CanTimeout.

bool canTimeout = stream.CanTimeout; 

Если CanTimeout ложно призвание свойств ReadTimeOut или WriteTimeout не допускается и бросает исключение.

ReadTimeout может использоваться, например, для NetworkStream.

+0

CanTimeout возвращает false. Итак, как я должен создать поток? ı dont get it –

+0

У вас есть функциональный MemoryStream, но вы не можете позвонить в ReadTimeout или WriteTimeout. Это не хорошая реализация стиля ООП от Microsoft ... –

+0

Я не называю ReadTimeout/WriteTimeout. Кто это называется? –

Смежные вопросы