.NET TIPS

部分信頼のClickOnceアプリケーションをデバッグするには?[VS 2005のみ]

デジタルアドバンテージ 一色 政彦
2007/01/19

 「TIPS:ClickOnceアプリケーションをデバッグするには?」では、開発中のClickOnceアプリケーション(以降、ClickOnceアプリ)をデバッグする方法を紹介している。この方法以外にも、コード・アクセス・セキュリティ(CAS)により制限されたサンドボックス・セキュリティ環境をシミュレートして、「部分信頼」(Partial Trust)状態のClickOnceアプリを簡単にデバッグ・検証する方法が提供されている。そこで本稿ではその方法について紹介する。

 なお、この方法はVisual Studio 2005(以降、VS 2005)の機能であるため、VS 2005のIDEを使うことを前提とする。

 ちなみに、部分信頼の詳細については、次のリンク先のページを参照されたい。

部分信頼デバッグの設定

 まずはClickOnceアプリが部分信頼の状態で配布されるように設定しておこう。

 その具体的な方法については、「ClickOnceが持つセキュリティ機構とは? ― ClickOnceの権限要求の設定方法」が詳しいのでそちらを参照してほしい。ここでは割愛する。

 次に部分信頼のデバッグを有効にする(ただし基本的にデフォルトで有効のはず)。これには、VS 2005のIDEでClickOnceアプリのプロジェクト・プロパティの[セキュリティ]タブを開き、さらにその中の[詳細]ボタンから[セキュリティの詳細設定]ダイアログを開く。そこで[このアプリケーションを選択されたアクセス許可のセットでデバッグする]チェック・ボックスにチェックを入れればよい(デフォルトでチェックが入っている)。

VS 2005のIDEにおける部分信頼デバッグの設定
部分信頼状態でClickOnceアプリをデバッグするための設定を行っているところ。なお、画面のようなプロジェクト・プロパティは[ソリューション エクスプローラ]でClickOnceアプリのプロジェクト項目を右クリックし、表示されるコンテキスト・メニューから[プロパティ]をクリックすることによって開かれる。なお以下のは「ClickOnceが持つセキュリティ機構とは? ― ClickOnceの権限要求の設定方法」で説明している、ClickOnceアプリを部分信頼の状態で配布するための設定と同じだ。
  プロジェクト・プロパティの[セキュリティ]タブを開く。
  [ClickOnce セキュリティ設定を有効にする]チェック・ボックスにチェックを入れる。
  [これは部分的に信頼するアプリケーションです](=部分信頼)を選択する。
  権限要求(=使用するアクセス許可)を細かく設定する。
  [詳細設定]ボタンをクリックすると、[セキュリティの詳細設定]ダイアログが表示される。
  部分信頼のセキュリティ環境でのデバッグを有効にするためのオプション。このチェック・ボックスにチェックを入れる(デフォルトでチェックが入っている)。
  ダウンロード元/実行元のサイトにアクセスするためのアクセス許可のオプション。必要に応じてチェックを入れる。これはノータッチ・デプロイメントの時代からあったカスタム・コード・グループのNetCodeGroup(=アセンブリのダウンロード元のサイトへのWebアクセスを許可。これにより、同一サイトのWebサービスが利用可能になる)と同じアクセス許可である。
  デバッグ時にダウンロード元サイトと仮定して用いるURL(例えば「http://www.atmarkit.co.jp/fdotnet/」)を指定する。デフォルトは未入力。この設定はのダウンロード元/実行元のサイトとして使われる。
  [OK]ボタンをクリックして設定内容を保存する。

 以上の設定が終わったら実際にデバッグを開始してみよう。

部分信頼デバッグの実行とアクセス許可の追加方法

 メニュー・バーから[デバッグ]−[デバッグ開始]をクリックする([デバッグなしで開始]を実行したときは、部分信頼状態では起動しないので注意すること)。これにより、(インターネット・ゾーンの場合は)次の画面のような「Microsoft .NET セキュリティ警告」というタイトルのバルーン・メッセージが表示され、このClickOnceアプリが部分信頼で実行されていることを確認できる。

部分信頼状態でデバッグ実行されたClickOnceアプリの例
(インターネット・ゾーンの場合は)部分信頼の状態では「Microsoft .NET セキュリティ警告」というタイトルのバルーン・メッセージが表示される。

 デバッグ実行の最中に、ClickOnceアプリが許可されていないコード(.NET Frameworkのクラスやそのメソッド、プロパティ)にアクセスすると、セキュリティ例外(SecurityException)が発生し、[例外処理アシスタント]ダイアログが表示される。ここでそのコードに対するアクセス許可を設定するには、次の画面のように[例外処理アシスタント]ダイアログの[プロジェクトにアクセス許可を追加]をクリックすればよい。

[アクション]欄にある[プロジェクトにアクセス許可を追加]をクリック
[例外処理アシスタント]ダイアログでのアクセス許可の追加方法
許可が認められないコードにアクセスするとセキュリティ例外が発生し、VS 2005のデバッグ機能により、このような[例外処理アシスタント]ダイアログが表示される。[アクション]欄にある[プロジェクトにアクセス許可を追加]をクリックすると、プロジェクト・プロパティに対してアクセス許可の追加が行われる。

 これにより、セキュリティ例外の原因となったコードが要求するアクセス許可が追加される。具体的には、先ほど示した「VS 2005のIDEにおける部分信頼デバッグの設定」という画面のの[アプリケーションで必要なアクセス許可:]の中の設定が変更されている。

 なおデバッグを引き続き行う際、ここで設定されたアクセス許可を有効にしたい場合には、(上掲の画面の[アクセス許可の追加]メッセージ・ボックス上の「新しいアクセス許可がアプリケーションに追加されました。新しいアクセス許可は、デバッグ セッションが再起動されたときに有効になります。」というテキストにあるように)メニュー・バーから[デバッグ]−[再起動]をクリックして、デバッグを最初からやり直す必要がある。End of Article

利用可能バージョン:.NET Framework 2.0のみ
カテゴリ:Windowsフォーム 処理対象:ClickOnce
関連TIPS:ClickOnceアプリケーションをデバッグするには?

この記事と関連性の高い別の.NET TIPS
ClickOnceアプリケーションをデバッグするには?
VSホスト・プロセス(*.vshost.exe)とは何か?
ClickOnceアプリのディレクトリ・パスを取得するには?
ClickOnceデータ・ディレクトリのパスを取得するには?
ClickOnceオンライン・キャッシュ領域のサイズを変更するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間