无法从文件或字符串创建STREAM

问题描述:

我想从文件或字符串创建一个流,但我得到了下面的错误。无法从文件或字符串创建STREAM

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

我找到了一个示例代码来创建一个流。这似乎很好,但它给出了上面的错误

顺便说一下,我试图发送数据到亚马逊MWS饲料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

我将字符串(内容)传递给上述函数 –

的MemoryStream类的图像中看到的错误不支持暂停。 你可以检查它检查属性CanTimeout。

bool canTimeout = stream.CanTimeout; 

如果CanTimeout为false调用属性ReadTimeout或WriteTimeout不被允许并引发异常。

ReadTimeout例如可用于NetworkStream。

+0

CanTimeout返回false。那么,我该如何创建一个流? ı不知道它 –

+0

你有一个功能性的MemoryStream,但你不能调用ReadTimeout或WriteTimeout。这不是一个很好的从Microsoft OOP风格执行... –

+0

我不打电话ReadTimeout/WriteTimeout。谁在呼唤它? –