2016-07-26 11 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

「s」とは何ですか?それはファイル名ですか、実際のストリームコンテンツですか? –

+0

また、あなたのコードは私のマシンで動作します。私が見ていない他のコードはありますか?例外がスローされると、ブレークポイントが作成されることがあります。あなたはそれが失敗している行を知っていますか? –

+0

上記の関数に文字列(コンテンツ)を渡しています –

答えて

0

のMemoryStreamクラス下の画像で見られるエラーが発生します。 CanTimeoutプロパティをチェックすることができます。

bool canTimeout = stream.CanTimeout; 

CanTimeoutがfalseの場合、プロパティの呼び出しReadTimeoutまたはWriteTimeoutは許可されず、例外がスローされます。

たとえば、NetworkTimeにReadTimeoutを使用できます。

+0

CanTimeoutはfalseを返します。だから、どうやってストリームを作りますか? –

+0

機能的なMemoryStreamがありますが、ReadTimeoutまたはWriteTimeoutを呼び出すことはできません。これは、Microsoftの優れたOOPスタイルの実装ではありません。 –

+0

私はReadTimeout/WriteTimeoutを呼び出していません。誰がそれを呼んでいる? –

関連する問題