0

簡単な pdf ドキュメントをダウンロードするための Web サービスを実行する ac# コンソール アプリをまとめました。オブジェクトを返すことはできますが、pdf オブジェクトをファイルに保存する方法を理解できないようです。

ServiceName.ImageResponse responseObject = Response.GetDocument(12345);
MemoryStream ms = new MemoryStream(responseObject.Document);
//System.Drawing is the problem (namespace can't be used in a Web Service)
System.Drawing.Image Img = System.Drawing.Image.FromStream(ms);
Img.Save("c:\\saved.JPG");

これは、次のエラー (System.Drawing の下の赤いスクイークライン) を受け取っているため、コンパイルされていません。

エラー 1 タイプまたは名前空間名 'Drawing' が名前空間 'System' に存在しません (アセンブリ参照がありませんか?)

http://msdn.microsoft.com/en-us/library/system.drawing.aspxには次のように記載されています。

注意 note注意 System.Drawing 名前空間内のクラスは、Windows または ASP.NET サービス内での使用はサポートされていません。これらのアプリケーション タイプのいずれかからこれらのクラスを使用しようとすると、サービス パフォーマンスの低下やランタイム例外など、予期しない問題が発生する可能性があります。サポートされている代替手段については、「Windows イメージング コンポーネント」を参照してください。

別の方法があれば知りたいだけです。私はそれを理解できないようです。

4

1 に答える 1

0

トレビュシェットはおそらく正しいです。必要な dll への参照を追加する作業を実際に行ったことを確認してください。名前空間は、.dll ファイルと 1 対 1 で対応していません。

これに関して:

System.Drawing 名前空間内のクラスは、Windows または ASP.NET サービス内での使用はサポートされていません。これらのアプリケーション タイプのいずれかからこれらのクラスを使用しようとすると、サービス パフォーマンスの低下やランタイム例外など、予期しない問題が発生する可能性があります。サポートされている代替手段については、「Windows イメージング コンポーネント」を参照してください。

確かなことはわかりませんが、System.Drawing 名前空間内のコンポーネントのいくつかは、プロセスがウィンドウ ステーションやデスクトップなどにアクセスできることを想定しており、実行時の例外が発生する場所であると推測されます。 . パントを取り、それが機能するかどうかを確認します(コンパイルエラーを修正したら)。ここで彼らが本当に言っているのは、「これが壊れたら電話しないでください」ということです:)

于 2012-12-06T21:46:31.280 に答える