- - PR -
System.Security.SecurityExceptionエラー
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-09-18 15:59
お世話になります。
--------------------------------------------------------- [OS]WindowsXp SP1 [VS]VisualStudio.NET2003+スマートクライアント WindowsフォームとExcel2003を使用 [言語]VB.NET --------------------------------------------------------- 上記環境にて開発を行っております。 Excel上に配置したボタンを押下してWindowsフォームを開こうとしているのですが、 フォームのインスタンス化する際に下記のエラーで処理が終了します。 「実行時例外がスローされました:System.Security.SecurityException - 要求が失敗しました。」 エラー箇所: Windowsフォームデザイナで生成されたコード内 Public Sub New() MyBase.New() InitializeComponent() ←ココ End Sub 処理も特にエラーメッセージとして表示されるわけではなく、 上記エラーもラインデバッグ中にInitializeComponent()にカーソルがきた際、 コマンドウィンドウにて単純に「? InitializeComponent」とすると 表示されたものです。 エラーなら何かメッセージが表示されてSTOPしてほしいのですが、、、 エラーなのに何も表示せずに終了するのかこの原因もわかりません。 InitializeComponent()内の処理にもとびません。 このプロシージャを呼ぼうとした時点にエラーとなっているようです。 最初はコードアクセスセキュリティとかのセキュリィ関係かと思ったのですが、 Windowsフォーム上に配置したボタンを押下して このエラーが発生するWindowsフォームを開く処理を検証してみると 上記のようなことは起こらず、正常に動作しました。 呼び元がExcelかWindowsフォームかだけで、 間の処理はすべて同じクラスを使用してみました。 このあたりに何か原因があるのでしょうか? ご教授よろしくお願い致します。 |
|
投稿日時: 2004-09-18 17:20
追記です。
例外エラーがエラーメッセージを表示せずに終了していたのは、 VSのツール「デバッグ」−「例外」にて、例外がスローされたときの設定が 『継続』になっていたためでした。 お騒がせしました。 それを『デバッガで中断』に変更してプログラムを実行した場合の エラーメッセージは以下です。 「System.Security.SecurityExceptionの初回例外がXXX.dllで発生しました。 追加情報:要求が失敗しました。」 XXX.dllは現在実行中のExcelプロジェクトアセンブリ名です。 よろしくお願いします。 |
|
投稿日時: 2004-09-18 18:04
何度も申し訳ないです。
上記エラーを訂正します。 実行: 「System.Security.SecurityExceptionの初回例外がmscorlib.dllで発生しました。 追加情報:要求が失敗しました。」 継続ボタン押下 「System.Security.SecurityExceptionの初回例外がXXX.dllで発生しました。 追加情報:要求が失敗しました。」 (上記投稿エラー) 継続ボタン押下 「System.Reflection.TargetInvocationExceptionの初回例外が不明なモジュールです。で発生しました。 追加情報:呼び出しのターゲットが例外をスローしました。」 継続ボタン押下 処理続行 という具合です。 ちなみに1度目の投稿で、成功したWinフォームからWinフォームへの呼び出しは プロジェクトがexeになり、今回失敗したExcelからWinフォームへの呼び出しは プロジェクトがdllとなります。 ともに1つのプロジェクト内で構成されています。 よろしくお願いします。 |
|
投稿日時: 2004-09-19 16:03
dcomcnfgで、excelオブジェクトに実行権を与えていますか?
コンポーネントサービス コンピュータ マイコンピュータ DCOMの構成 Microsoft Excel アプリケーション |
|
投稿日時: 2004-09-21 10:17
Jitta様
回答ありがとうございます。 返答遅くなり申し訳ないです。 >dcomcnfgで、excelオブジェクトに実行権を与えていますか? すみません。 どのような実行権を与えればよろしいのでしょうか? 指示のあるMicrosoft Excel アプリケーションのプロパティを見てみました。 [場所]「このコンピュータでアプリケーションを実行する」 のみチェック [セキュリティ]起動許可/規定、アクセス許可/規定、 権限の構成/カスタマイズ・・・編集 各登録ユーザーのアクセス許可、フルコントロール [エンドポイント]既定のシステムプロトコル [ID]起動したユーザー 以上のような設定になっておりました。 よろしくお願い致します。 |
|
投稿日時: 2004-09-21 17:56
自己レスです。
コードアクセスセキュリティの設定で、 .NET Configuration 1.1 ---マイコンピュータ ------ランタイムセキュリティポリシー ---------コンピュータ ------------コードグループ ---------------All_Code ------------------My_Computer_Zone のアクセス許可セットをFullTrustに設定したところ上記のエラーは回避できました。 そこで、このような設定をしないといけないのか。 また、このような設定をしてはいけなかったのか。 そのあたりがよくわかりません。 どなたかご教授よろしくお願い致します。 ちなみにLocal_intranet_Zoneの設定や ユーザーのコードグループにおいて実行OfficeExcel_binの設定は 規定値のままです。 |
|
投稿日時: 2004-09-21 20:11
本当に何度も申し訳ないです!!
パニック状態で書くものではありませんね。 きちんと整理してから書いていきたいと思います。 原因がわかりました。 エラーがSystem.Security.SecurityExceptionエラーなので すっかりセキュリティ絡みだと考えていましたが、実はそうではなかったようですね。 開こうとしていたフォームにはMSHFrexGridコントロールが 張り付いていたので、コードセキュリティの設定を変更したと同時にそれを削除していました。 今もう1度コントロールを貼り付けて実行したところ、上記エラーが発生しました。 やはりMSHFrexGridコントロールは使用しない方がよさそうですね。 でもWinフォームからWinフォームを開く場合はMSHFrexGridコントロールが張り付いてても 問題なく開いたのですが・・・。 ExcelからWinフォームを開く場合はだめというのはなぜでしょう・・・。 皆様、ひとりでレスしてお騒がせしてほんとに申し訳ありませんでした! |
1