トップ回答者
実行しようとするとエラー

質問
-
頻繁にではないのですけれど、「デバッグ開始」を行うと下のようなエラーダイアログが表示されます。
-----------------------------------------------------------
プロジェクトを実行しようとしているときにエラーが発生しました:デバッグを開始できません。
結合ハンドルが無効です。
-----------------------------------------------------------
ソフトが公開されてからほぼ毎日使用しているのですが、このエラーダイアログはこれで3回目です。OSを再起動すると元に戻るのですが、これはどういったことが原因なのでしょうか?
OS:Windows XP HomeEdition SP2
回答
-
諸農です。
オノデラ さん は書きました: 頻繁にではないのですけれど、「デバッグ開始」を行うと下のようなエラーダイアログが表示されます。
エラーの出るプロジェクトの規模はどれくらいの大きさでしょうか。また、どう言ったプログラムでしょうか。
OSを再起動しないと、ビルドすら出来なくなるのでしょうか?それともビルドは可能でしょうか。例えばIDEの再起動ではどうでしたでしょうか。プロジェクトのリロードはどうでしょうか。
プロジェクトのプロパティの設定でデバッグの設定やビルドの設定が出来ますが、これらはデフォルトのままでしょうか。何か設定を変更されたものなどはないでしょうか。
再現性ですが、同じプロジェクトで再現しているのでしょうか?それとも全然違うプロジェクトで発生しているのでしょうか。
ディスクのフラグメントや、マシンのメモリ状況などはどうでしょうか。
-
GDNJでも書いたのですが、やはり、定番の解決方法は、ターミナルサービスがらみのようです。
例えば、
Troubleshooting the "The Binding Handle Is Invalid" error in Visual Studio 2005
http://blogs.msdn.com/habibh/archive/2005/11/10/491572.aspx私の部ログでも書きましたが、
http://blogs.wankuma.com/trapemiya/archive/2005/12/19/20096.aspx
エラーメッセージを英語にすると、
Error while trying to run project: unable to start debugging
the binding handle is invalid
になると思いますので、これをキーワードに検索されると良いかもしれません。
(私も少し検索してみましたが、めぼしいものが見つかりませんでした)あと、
Bug Details: Error while trying to run project: Unable to run debugging. The binding handle is invalid.
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=1c26f151-6455-4117-998a-41f4675fe7e7
なのもありますので、.NET Framework 2.0関連の以前のバージョンが残っていたりして、悪さをしているのかもしれません。一度、.NET Framework 2.0関連を全てアンインストールして、インストールし直すといいかもしれません。 -
オノデラ は書きました: DLL 'C:\WINDOWS\assembly\GAC\Microsoft.DirectX.Direct3D\1.0.2902.0__31bf3856ad364e35\Microsoft.DirectX.Direct3D.dll' は、OS ローダー ロック内でマネージ実行を試行しています。DllMain またはイメージ初期化関数内でマネージ コードを実行しないでください。この動作は、アプリケーションをハングさせる原因になる可能性があります。
同じような質問が以前ありましたのでご参考までに.
http://vsug.jp/tabid/63/view/topic/forumid/72/postid/1360/Default.aspx
なおお使いの Managed DirectX は .NET 1.1 用のものです.(バージョン 1.0.2902.0)
CLR 2.0 は .NET 1.1 用のアセンブリについても互換性を考慮しているとはいえ,Managed C++ によるアンマネージドコードの実行についてはなかなか難しい問題が存在することも確かです.
何らかのトラブルが発生した場合はそのような可能性についても考慮してみてください.なお .NET 2.0 用の Managed DirectX は現在プレリリースバージョンが公開されています.(再配布条件などについてはよく注意してください)
すべての返信
-
諸農です。
オノデラ さん は書きました: 頻繁にではないのですけれど、「デバッグ開始」を行うと下のようなエラーダイアログが表示されます。
エラーの出るプロジェクトの規模はどれくらいの大きさでしょうか。また、どう言ったプログラムでしょうか。
OSを再起動しないと、ビルドすら出来なくなるのでしょうか?それともビルドは可能でしょうか。例えばIDEの再起動ではどうでしたでしょうか。プロジェクトのリロードはどうでしょうか。
プロジェクトのプロパティの設定でデバッグの設定やビルドの設定が出来ますが、これらはデフォルトのままでしょうか。何か設定を変更されたものなどはないでしょうか。
再現性ですが、同じプロジェクトで再現しているのでしょうか?それとも全然違うプロジェクトで発生しているのでしょうか。
ディスクのフラグメントや、マシンのメモリ状況などはどうでしょうか。
-
とりあえず分かるものを順番に答えます。(OSを再起動してしまったので今はなんともないです。)
> エラーの出るプロジェクトの規模はどれくらいの大きさでしょうか。また、どう言ったプログラムでしょうか。
(2005/12/18時点)一番最初に出たときのプロジェクトは「exe × 1」「dll × 2」で、各サイズは exe から「572KB」「88KB」「92KB」 。Managed DirectX 1.1 使用、バージョンは違いますが、ソフトはこちらです。
2回目は忘れました。今日の3回目のプロジェクトはこちらとほぼ同等のプロジェクトです。違う点は、自作の DLL を参照にひとつ追加してクラスを使用できるかテストしていました。
> OSを再起動しないと、ビルドすら出来なくなるのでしょうか?それともビルドは可能でしょうか。
ビルドは普通に出来ます。
> 例えばIDEの再起動ではどうでしたでしょうか。プロジェクトのリロードはどうでしょうか。
今日はOSを再起動してしまったので分かりませんが、1回目の時はどのプロジェクトを読み込んでも同じ症状が出ていました。
> プロジェクトのプロパティの設定でデバッグの設定やビルドの設定が出来ますが、これらはデフォルトのままでしょうか。何か設定を変更されたものなどはないでしょうか。
すべてデフォルトです。変えたのは、アイコンとアプリケーションのアセンブリ情報ぐらいです。(ここらへん詳しくないのであんまり触ってないです。)
> 再現性ですが、同じプロジェクトで再現しているのでしょうか?それとも全然違うプロジェクトで発生しているのでしょうか。
多分プロジェクトは関係なく起こります。1回目、2回目と今回のプロジェクトは別です。
> ディスクのフラグメントや、マシンのメモリ状況などはどうでしょうか。
ディスクのフラグメントは分かりません。メモリは 1072MB 中 600MB は使用していると思います。
追記ですが、現在の環境をもうすこし
Visual C# 2002 インストールのちアンインストール
Visual Studio 2003 アカデミック インストール済み
Visual C# 2005 Beta2 インストールのちアンインストール
Visual C# 2005 Express Edtion インストール済み
HT CPU 使用(2.8Gz)
デバッグなし実行では問題なく起動
前にこちらでも質問させていただいたのですが、また出てきたので投稿させていただきました。
-
GDNJでも書いたのですが、やはり、定番の解決方法は、ターミナルサービスがらみのようです。
例えば、
Troubleshooting the "The Binding Handle Is Invalid" error in Visual Studio 2005
http://blogs.msdn.com/habibh/archive/2005/11/10/491572.aspx私の部ログでも書きましたが、
http://blogs.wankuma.com/trapemiya/archive/2005/12/19/20096.aspx
エラーメッセージを英語にすると、
Error while trying to run project: unable to start debugging
the binding handle is invalid
になると思いますので、これをキーワードに検索されると良いかもしれません。
(私も少し検索してみましたが、めぼしいものが見つかりませんでした)あと、
Bug Details: Error while trying to run project: Unable to run debugging. The binding handle is invalid.
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=1c26f151-6455-4117-998a-41f4675fe7e7
なのもありますので、.NET Framework 2.0関連の以前のバージョンが残っていたりして、悪さをしているのかもしれません。一度、.NET Framework 2.0関連を全てアンインストールして、インストールし直すといいかもしれません。 -
trapemiya さんありがとうございます。
今は問題ないので対処はしませんが、次に起こった場合は
プロジェクトのプロパティ -> デバッグ -> デバッガを有効にする -> Visual Studio ホスティングプロセスを有効にする のチェックを外す。
の方法で対処してみることにします。もしこれでも直らない場合は、
.NET Framework 2.0関連を全てアンインストール
の方法でやってみたいと思います。
ただ、アンインストールしても互換のためにデータが残るという文章が書いてあったので少し不安な部分もあります。実際、Visual C# 2005 を入れる前に Beta2 (.NET Framework 2.0.50215)は全部アンインストールしていたので、アンインストールで直るかもという部分には少し疑問が残ります。
とりあえずやってみないとわからないので、また症状が出てきたら対処してみます。
ありがとうございました。
-
今日も例のダイアログが出てしまったので、対処法として
プロジェクトのプロパティ -> デバッグ -> デバッガを有効にする -> Visual Studio ホスティングプロセスを有効にする のチェックを外す。
を実行したら、下のようなコードで赤の部分でエラーが出てしまいました。プロジェクトはこちらとまったく同じものです。
<コード>
[STAThread]
static void Main()
{
// コントロール等を Windows XP のスタイルにします。はずしてもかまいません。
Application.EnableVisualStyles();// この行に関して意味は分かりませんが、なくても大丈夫だと思います。
Application.SetCompatibleTextRenderingDefault(false);// メインフォームを作成
// using() で作成されたリソースは {} を外れると自動的に解放される
// ここでは form が対象
using (MainForm form = new MainForm())
{
// Direct3D 関連の初期化
if (form.InitializeDirect3D())
{
// メインフォームを表示
form.Show();// フォームが作成されている間は、ループし続ける
while (form.Created)
{
// 何もイベントが無ければ描画処理等を行う
form.MainLoop();
// イベントがある場合は処理する
Application.DoEvents();
}
}
else
{
// 初期化に失敗
}
// Direct3D 関連のリソース解放
form.DisposeDirect3D();
}
}<エラー内容>
DLL 'C:\WINDOWS\assembly\GAC\Microsoft.DirectX.Direct3D\1.0.2902.0__31bf3856ad364e35\Microsoft.DirectX.Direct3D.dll' は、OS ローダー ロック内でマネージ実行を試行しています。DllMain またはイメージ初期化関数内でマネージ コードを実行しないでください。この動作は、アプリケーションをハングさせる原因になる可能性があります。
とりあえず今はやらなければいけないことがあるので、OSの再起動で対処しますが、終わったら後でソフトを再インストールしてみます。
-
オノデラ は書きました: DLL 'C:\WINDOWS\assembly\GAC\Microsoft.DirectX.Direct3D\1.0.2902.0__31bf3856ad364e35\Microsoft.DirectX.Direct3D.dll' は、OS ローダー ロック内でマネージ実行を試行しています。DllMain またはイメージ初期化関数内でマネージ コードを実行しないでください。この動作は、アプリケーションをハングさせる原因になる可能性があります。
同じような質問が以前ありましたのでご参考までに.
http://vsug.jp/tabid/63/view/topic/forumid/72/postid/1360/Default.aspx
なおお使いの Managed DirectX は .NET 1.1 用のものです.(バージョン 1.0.2902.0)
CLR 2.0 は .NET 1.1 用のアセンブリについても互換性を考慮しているとはいえ,Managed C++ によるアンマネージドコードの実行についてはなかなか難しい問題が存在することも確かです.
何らかのトラブルが発生した場合はそのような可能性についても考慮してみてください.なお .NET 2.0 用の Managed DirectX は現在プレリリースバージョンが公開されています.(再配布条件などについてはよく注意してください)
-
NyaRuRu さんありがとうございます。
> http://vsug.jp/tabid/63/view/topic/forumid/72/postid/1360/Default.aspx
私が使っているバージョンは 2004 Oct なんですが(Ver 1.1)、このバージョンでは単純に解決するのは難しそうですね(というか出来ない?)。
現段階では DirectX SDK のバージョンアップ予定はないので、とりあえず現状のままで行きたいと思っております。
> なお .NET 2.0 用の Managed DirectX は現在プレリリースバージョンが公開されています.(再配布条件などについてはよく注意してください)
正式版が早く出てきてほしいものです。
-
みなさんこんにちは。森田 知良です。
回答を寄せてくださったみなさん、有用な情報ありがとうございました。
オノデラさん、フォーラムのご利用ありがとうございます。
回答を寄せてくださったみなさんさんの情報は、有用な情報と思われましたので、
勝手ながら回答済みチェックをつけさせていただきました。オノデラさんは、回答済みチェックを解除することもできますのでご確認ください。
回答済みチェックが付くことにより、有用な情報を探している方が情報を見つけやすくなります。
有効な回答があった場合は、なるべく回答済みボタンを押してチェックを付けてくださるようお願いします。追加の質問がありましたら、是非もう一度投稿してくださるようお願いします。
それでは、これからもフォーラムのご利用をよろしくお願いいたします。