3

Vista 開発マシンでは正常に動作する WPF アプリケーションがありますが、製品版の XP ボックスでは動作しません。唯一の問題は、OpenFileDialog.Show() の呼び出しにあります。メソッドを呼び出すとすぐに、アプリケーションは XP ボックスで終了します。

問題は例外をトリガーしません。(ブロックを try-catch ブロックで囲んでも役に立ちませんでした。) [ファイル] -> [開く] をクリックすると、アプリケーションが起動して XP で終了します。興味深いことに、[ファイル] -> [保存] および [名前を付けて保存] ダイアログを使用して、ファイルをディスクに書き込むことができます。.Net 3.0 および 3.5 にビルドしようとしましたが、違いはありません。

Microsoft.Win32.OpenFileDialog と System.Windows.Forms.OpenFileDialog の両方を試しましたが、まったく同じ症状が発生します。

Microsoft.Win32 亜種のコード ブロック:

試す  
{  
    OpenFileDialog ofd = new OpenFileDialog();
    if (ofd.ShowDialog().Value)
    {
        //何かをする
    }
}
キャッチ(例外例)
{
    MessageBox.Show(ex.ToString(), "エラー!");
}

私が持っている唯一の手がかりは、セキュリティ イベント ログからの次の (部分的な) エントリです。

イベントの種類: 失敗の監査
イベント ソース: セキュリティ
イベント カテゴリ: オブジェクト アクセス
イベント ID: 560
説明:
オブジェクトを開く:
        オブジェクト サーバー: セキュリティ
        オブジェクト タイプ: キー
        オブジェクト名: \REGISTRY\MACHINE\SOFTWARE\Microsoft\EnterpriseCertificates\Disallowed
        アクセス: DELETE
                        READ_CONTROL
                        書き込み_DAC
                        WRITE_OWNER
                        クエリ キー値
                        キー値の設定
                        サブキーの作成
                        サブキーを列挙する
                        キーの変更について通知する
                        リンクを作成

何か案は?(お願い!)

4

3 に答える 3

1

アドバイスをありがとう。レジストリのアクセス許可と完全信頼の問題の両方を確認しました。(標準的な組織イメージに基づいて) 特に .Net 3.0 に合わせてアプリケーションを構築しましたが、.Net 3.5 SP1 への依存関係があり、まだ完全には理解できていません。私の問題の解決策は、影響を受けるすべてのコンピューターに .Net 3.5 SP1 をインストールすることでした。

ループを閉じたかっただけです。繰り返しますが、アイデアを提供してくれたすべての人に感謝します。

于 2010-09-02T07:22:50.657 に答える
0

運用アセンブリが完全な信頼の下で実行されているようには見えません。ネットワーク共有から実行していますか?

于 2010-08-23T19:02:23.583 に答える
0

レジストリ キーに権限の問題があるようです。私の最初の提案は、そのキーのアクセス許可を確認し、ACL が正しいことを確認することです (アプリが動作している別の XP ボックスと比較するのが最適です)。

アクセス許可に問題がない場合は、.NET を再インストールしてみてください (レジストリ キーで必要なアクセス許可がインストーラーによってリセットされる可能性があります)。

他のすべてが失敗した場合は、誰かがより良い考えを持っていない限り、問題のあるマシンに XP を再インストールしてください。

于 2010-08-23T18:34:10.317 に答える