私はASP.Net Webサイトが(this articleに基づいて)ファイルを取得できるようにするWCFサービスを作成中です。私の問題は、ストリームを返すときは空白だということです。File.OpenRead()からストリームを返す
は簡単にするために、私は試してみて、問題がストリームを返すにあるものを見つけるために、単純なリサイズアプリにコードを分離してきたし、これはコードです:
private Stream TestStream()
{
Stream fs = File.OpenRead(@"c:\testdocument.docx");
return fs;
}
// This method converts the filestream into a byte array so that when it is
// used in my ASP.Net project the file can be sent using response.Write
private void Test()
{
System.IO.MemoryStream data = new System.IO.MemoryStream();
System.IO.Stream str = TestStream();
str.CopyTo(data);
byte[] buf = new byte[data.Length];
data.Read(buf, 0, buf.Length);
}
このコードの結果ということですbuf
は12,587バイト(ファイルの正しい長さ)ですが、0だけを含んでいます。
私は試してみるとWord文書が問題なく開きますが、何か明白なものがありませんか?
管理者として実行していますか? 「マイドキュメント」またはルート以外の別のフォルダからドキュメントを引き出してみてください。 – keyboardP
@keyboard - 良いアドバイスだけど、例外は発生し、 '0'と正しい長さは生成されません。 –
@HenkHolterman - ああ、それは本当です。 – keyboardP