C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: WebBrowserにNavigate時の例外


(過去ログ 101 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■60256 / inTopicNo.1)  WebBrowserにNavigate時の例外
  
□投稿者/ マロン (1回)-(2011/06/24(Fri) 16:50:15)

分類:[VB.NET/VB2005 以降] 

OS:Windows Vista
VB:2008(VS2008 SP1)

tiff形式の画像を掲載しているサイトを閲覧するために、AlternaTIFFというプラグインをインストールしているのですが、
tiff形式画像掲載サイトをWebBrowserでNavigateすると、以下に記載したSystem.AccessViolationExceptionという例外が発生します。
(このプラグインをインストールしなければ、この例外は発生しません。もちろんtiff形式の画像は閲覧できませんが。)
この例外を回避するにはどのようにすればよいでしょうか?


'参考
AlternaTIFF http://www.alternatiff.com/


'ソース
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        WebBrowser1.Navigate("http://**********")
    End Sub
End Class

'例外の内容
System.AccessViolationException はハンドルされませんでした。
  Message="保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。"
  Source="System.Windows.Forms"
  StackTrace:
       場所 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       場所 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       場所 System.Windows.Forms.Application.Run(ApplicationContext context)
       場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
       場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
       場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
       場所 ********.My.MyApplication.Main(String[] Args) 場所 17d14f5c-a337-4978-8281-53493378c1071.vb:行 81
       場所 System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       場所 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       場所 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       場所 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       場所 System.Threading.ThreadHelper.ThreadStart()
  InnerException: 

引用返信 編集キー/
■60261 / inTopicNo.2)  Re[1]: WebBrowserにNavigate時の例外
□投稿者/ マロン (2回)-(2011/06/24(Fri) 19:06:09)
あと、これは関係あるかどうか分かりませんが、
このPCにインストールされているIEはIE7です。
引用返信 編集キー/
■60262 / inTopicNo.3)  Re[2]: WebBrowserにNavigate時の例外
□投稿者/ 逆運の覇者 (16回)-(2011/06/24(Fri) 19:34:06)
WebBrowserでJavaアプレットを動かすのでも同様に困っている人がいるようですね。
データ実行防止との互換性を切ってみてはどうでしょう。

http://msdn.microsoft.com/ja-jp/library/ms235442.aspx


レンダリングモード(ドキュメントモード)が影響しているのかな?
とも思いましたが、違うでしょうね。
引用返信 編集キー/
■60267 / inTopicNo.4)  Re[3]: WebBrowserにNavigate時の例外
□投稿者/ マロン (3回)-(2011/06/25(Sat) 10:52:35)
> WebBrowserでJavaアプレットを動かすのでも同様に困っている人がいるようですね。
> データ実行防止との互換性を切ってみてはどうでしょう。
>
> http://msdn.microsoft.com/ja-jp/library/ms235442.aspx

ありがとうございます。
VBとこの記事との関係がよく理解できていないのですが
(そもそもこの記事が何を言っているのか理解できていないのですが)
VBではどのように対応すればよいのでしょうか?
引用返信 編集キー/
■60274 / inTopicNo.5)  Re[1]: WebBrowserにNavigate時の例外
□投稿者/ Azulean (772回)-(2011/06/25(Sat) 20:11:12)
No60256 (マロン さん) に返信
> この例外を回避するにはどのようにすればよいでしょうか?

正直なところ有効な手立てを見つけることが困難です。

AccessViolationException はアクセスしてはいけないメモリにアクセスするという違反行為があった場合に発生するものです。
今回の例外のスタックトレースも .NET のコードを実行している状態ではないということから、ネイティブコード実行中に発生したものと考えられますが、それがどのネイティブコードで、どういった問題があるからかを読み取ることはできません。

現象の発生有無を分けるプラグインが特定できているようですが、そのプラグインの不具合か、.NET と相性が悪いか、あなたの WebBrowser の設定が悪いかが考えられますが、断定できる材料と簡単な調べ方は思いつきません。

.NET 以外の IE エンジンを使うブラウザで同じように再現するかということをみるとかからでしょうか。
正直大変です。


No60262 (逆運の覇者 さん) に返信
> http://msdn.microsoft.com/ja-jp/library/ms235442.aspx

これは Visual C++ のオプションですので、VB.NET でアプリケーションを作る上では関係してきません。
引用返信 編集キー/
■60728 / inTopicNo.6)  Re[2]: WebBrowserにNavigate時の例外
□投稿者/ マロン (4回)-(2011/07/16(Sat) 11:17:37)
ご無沙汰しております。

あれから色々と調べましたが、有効な手段が見つかりません。
とりあえず、以下のサイトを参考にWebBrowserのプラグインをOFFにして、
別途tiff形式の画像をダウンロードし、編集したHTMLを表示することにしようと考えています。

参考
http://jumbofoot.cocolog-nifty.com/yass_vbnet_tips/2006/09/webbrowser_1de3.html

この状態だと、右クリックして「対象をファイルに保存」メニューより、tiffファイルをダウンロードすることができますが、
これを自動的に行いたいのです。
つまり、ダウンロードと保存先をプログラム上で制御したいのですが、このようなことは可能でしょうか?
HTML上のフォームのSUBMITボタンやリンクをプログラム上で自動クリックすることはやったことはありますが、
「対象をファイルに保存」が自動的にできるかどうか全く分かりません。
アドバイスをお願い申し上げます。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -