2011-06-04 12 views
2

この問題は私を困惑させています。開発マシン上で動作するC#アプリケーションで、非開発マシンで失敗する

フォームから情報を取得し、バックグラウンドワーカーに渡し、次にa)ローカルxmlファイルに情報を書き込み、b)リモートのMySQLデータベースに情報を挿入するアプリケーションを作成しています。

私の開発マシンでは、完璧に動作しているようです。リモートデータベースが更新され、必要に応じてxmlファイルが作成され、すでに存在する場合は更新されます。それは働いている。

開発環境を終了してIDEサンドボックスとは独立してリリースビルドを実行しても、コードは機能します。

しかし、私はそれを別のマシンに置くと、コードが失敗し、なぜその理由が分かりません。

私は現在32ビットのWindows 7 UltimateマシンでVisual Studio 2010 Professionalを使用しています。

現時点では、アプリケーションがかなり特定の時点で停止していることがわかりました。これは、バックグラウンドワーカーがファイルシステムへのアクセスやリモートデータベースへのアクセスなどの作業を開始する場所と思われます。

このプロジェクトは、1つのexeファイルと、そのプロジェクトで設計したカスタムコントロールを持つdllで構成されています。カスタムコントロールは、私が望むものを表示し、私が望むときにそれを求めている値を返すので、うまくいきます。だから、それは責任がないように見えます。

私は当初、アクセス権の問題を見ている可能性があると思っていましたが、管理者としてアプリケーションを実行すると同じ応答が得られます。

私は.NETフレームワークのバージョン4を使用して書いていますが、バージョン3.5にダウングレードしました。私が試した非開発マシンは、アプリケーションを実行しようとする前に、最新の状態になっているか、最新の状態になっています。

私は正直にここでうんざりしています。どんな提案も大歓迎です。

アラン

+2

クライアントマシンにインストールされていないサードパーティのコントロールやプログラムへの参照を追加しましたか?これは、通常、最初に見える場所です。また、どんなエラーが出ていますか? (ヒント、エラーが発生しておらず、クラッシュしている場合はエラーを適切に処理していません。失敗する可能性のあるコードのブロックなどをキャッチしてください) – David

+0

@David唯一の第三者コードが参照されています私が問題の一部である可能性があると思うMySQLコネクタのリファレンスになります。私はそれをリリースビルドに含めることを試み、何が起こるか見る。応答していただきありがとうございます。私はMySQLコードが問題であるとは考えていませんでした。 – inksmithy

答えて

4

あなたのコードが失敗した場合、それは最も可能性の高いいくつかのキャッチされない例外があることを意味します。あなたがすべきことは、キャッチされていないすべての例外(おそらくキャッチされたもの)をファイルに記録することです。おそらくlog4netのようなものを使用します。

私はそれを超えてお手伝いできるとは思いません。

+0

応答に感謝、私はlog4netを取得する必要があります。アラン – inksmithy

1

このような状況でアプリケーションを診断するために、Donsoleというライブログユーティリティが書かれています。開発者用ワークステーションでは、VSの豊富な機能を備えたデバッガを使用して診断するのが非常に簡単です。ユーティリティアプリ。内部で何が起こっているのかわからない、この種のシナリオで開発者を正確に支援します。最新のビルドをダウンロードして自分で試してみることをお勧めします。このユーティリティの使い方とその働きについては、この回答の範囲を超えているので、プロジェクトのコードページに転送します。

http://donsole.codeplex.com/

これは、それがどのように見えるかです。

enter image description here

+0

ありがとう、私は一見、歓声を持っているよ! – inksmithy

1

お使いのオペレーティングシステムのイベントビューアを見てみましょう。管理ツール]> [イベントビューア]> [Windowsログ]> [アプリケーション]を選択します。

関連する問題