過去数時間、Google を探し回る奇妙な問題が発生しましたが、これに近いものは見つかりませんでした。
リモートでホストされているチャート API の画像 URL を動的に生成し、その URL をソースとして PictureBox ( ) に返すクラスを含む VB.NET Winforms プロジェクトがありますpbCallChart.ImageLocation = MyURL
。これは適切に機能しており、何年もの間正常に機能しています。ただし、最近、プロジェクトを .NET 3.5 から .NET 4.0 にアップグレードする必要がありました (64 ビット ビルドの VS 2010 で作業しているため、.NET 3.5 でアクティブ デバッグを実行できないようです)。これを行うとすぐに、画像が表示されなくなりました。
作業しているのと同じマシンの Web ブラウザーで URL をプルアップすると、画像が機能することを確認しました。最初は、4.0 でそのプロパティが削除されたのではないかと考えたので、Load() 関数に切り替えてみました。サイコロはありません。次に、さらに一歩進んで、この小さな関数を書きました。
Public Function ChartImage() As Bitmap
Dim ChartURL As String = "http://www.anyURL.com/img.jpg" 'Chart()
Return New System.Drawing.Bitmap(New IO.MemoryStream(New System.Net.WebClient().DownloadData(ChartURL)))
End Function
これを実行すると (どの URL を渡しても問題ないことを確認しました)、常に次のエラーが発生します。
An unhandled exception of type 'System.Net.WebException' occurred in System.dll
Additional information: Unable to connect to the remote server
.NET 3.5 の同じコンピューターで問題なく動作するため、これがプロキシの問題ではないことはわかっています。また、実行可能ファイルをコンパイルしてユーザーに提供したため、単なるデバッグの癖ではないことを確認しました.NET 3.5バージョンは機能し、.NET 4.0バージョンは機能しないことが確認されました.
2 つのバージョンには、私が知らないセキュリティ構成の違いがあるに違いないとしか思えませんが、誰かがどこかで言及しているようです。他の誰かがこのようなことを経験したことがありますか? 私はほとんどアイデアがありません - 何かありますか?