私は、PDFファイルをSystem.IO.Streamとして生成して返すWCFプロジェクトに取り組んでいます。説明できない行動に出くわしました。
WCFによって公開されるメソッドの1つは、次のとおりです。
Public Function Print(ByVal input As Integer) As Stream
'Do stuff here.
Return pdfStream
End Function
クライアントは次のコマンドでメソッドを呼び出します。
Dim streamReturn as Stream
streamReturn = Service.Print(input)
これはうまくいきます。入力のデータ型をStringに変更しようとすると、問題が発生しました。
Public Function Print(ByVal input As String) As Stream
'Do stuff here.
Return pdfStream
End Function
クライアントでサービスリファレンスを更新すると、次のエラーが表示されるようになりました。
streamReturn = Service.Print(input)
「タイプ「バイトの1次元配列」の値を「System.IO.Stream」に変換できません。」
入力のデータ型が文字列に変更されると、転送モードがストリームバックからバッファリングに戻るように見えます。なぜ何かアイデアはありますか?
編集:WCFは.Net 4.0であり、クライアントは.Net3.5です。