System.Drawing inとアプリケーションを使用して、Webアプリケーションの画像を操作しています(回転、反転など)。先月、次のエラーが散発的に発生しました。
「保護されたメモリの読み取りまたは書き込みを試みました。これは、他のメモリが破損していることを示していることがよくあります。」
MSDNライブラリに基づくと、WebアプリケーションでSystem.Drawingを使用するべきではないようです(以下の挿入を参照)。
System.Drawing.Imaging名前空間内のクラスは、WindowsまたはASP.NETサービス内での使用はサポートされていません。これらのアプリケーションタイプのいずれかからこれらのクラスを使用しようとすると、サービスパフォーマンスの低下や実行時の例外など、予期しない問題が発生する可能性があります。
ASP.NetアプリケーションでSystem.Drawingを使用するためのフォーラム全体がASP.Netにあるため、これは正しくないように思われます。さらに、私が見つけたすべてのWeb Image EditorコントロールはSytem.Drawingを使用しているので、それがSystem.Drawingの実際の問題ではないと私が考えているもう1つの理由です。だから私が持っている質問は次のとおりです。
1)ASP.NetアプリケーションでSystem.Drawingを使用しているときに、他の誰かがこの問題を抱えていますか?もしそうなら、修正は何でしたか。
2)エラーをスローする行は以下のとおりです。問題は、MemoryStreamを使用していることであり、System.Drawingの問題ではない可能性がありますか?別のタイプのストリームを使用すると、問題が解決します。
using (System.Drawing.Image oFullImg = System.Drawing.Image.FromStream(msImage))
3)本当に問題があり、System.Drawingを使用すべきではない場合、Webサイト上の画像を操作するための他の選択肢はありますか。
これは長引くにつれてより重大な問題になりつつあるので、解決策を見つけるのが早ければ早いほどよいのです。どんな助けでもありがたいです。