C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: サーバ上に配置したプログラムを動かしたい


(過去ログ 98 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■58557 / inTopicNo.1)  サーバ上に配置したプログラムを動かしたい
  
□投稿者/ うず (1回)-(2011/04/14(Thu) 14:41:57)

分類:[C#] 

Visual C# 2008 Express Editionを使用し、サーバ上のAccessデータファイル(mdb)にアクセスするフォームアプリケーションを作成しています。
mdbファイルと同じ位置(サーバ上)にアプリケーションを配置し、そこからアプリケーションを実行できるようにしたいのですが
SecurityExceptionの例外エラーが発生していまい、どのように解決したらよいかわからずにいます。

過去に類似した質問は見つけられたのですが、具体的な解決策(コードアクセスセキュリティの問題?)がわからずにいます。
http://social.msdn.microsoft.com/Forums/ja-JP/vbexpressja/thread/9a71a77a-f5e3-4df8-b3cf-f339c3d5d359
http://social.msdn.microsoft.com/Forums/ja-JP/vbexpressja/thread/32df687d-bc3d-439a-817b-7841672c83f0
http://bbs.wankuma.com/index.cgi?mode=al2&namber=37557&KLOG=65

サーバのアクセス権はなるべく変更せず、アプリケーションの設定またはソースコード上から解決できる方法をご存知の方、教えてください。

以下にエラーメッセージを掲載します。
(ディレクトリ名やアプリケーション名は一部伏字にしています)

---------------

Just-In-Time (JIT) デバッグを呼び出すための詳細については、
ダイアログ ボックスではなく、このメッセージの最後を参照してください。

************** 例外テキスト **************
System.Security.SecurityException: 型 'System.Data.OleDb.OleDbPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' のアクセス許可の要求に失敗しました。
   場所 System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
   場所 System.Security.PermissionSet.Demand()
   場所 System.Data.Common.DbConnectionOptions.DemandPermission()
   場所 System.Data.OleDb.OleDbConnection.PermissionDemand()
   場所 System.Data.OleDb.OleDbConnectionFactory.PermissionDemand(DbConnection outerConnection)
   場所 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   場所 System.Data.OleDb.OleDbConnection.Open()
   場所 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   場所 System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
   場所 System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
   場所 ***.***.***.***(***Table dataTable)
   場所 ***.Form1.Form1_Load(Object sender, EventArgs e)
   場所 System.Windows.Forms.Form.OnLoad(EventArgs e)
   場所 System.Windows.Forms.Form.OnCreateControl()
   場所 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   場所 System.Windows.Forms.Control.CreateControl()
   場所 System.Windows.Forms.Control.WmShowWindow(Message& m)
   場所 System.Windows.Forms.Control.WndProc(Message& m)
   場所 System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   場所 System.Windows.Forms.ContainerControl.WndProc(Message& m)
   場所 System.Windows.Forms.Form.WmShowWindow(Message& m)
   場所 System.Windows.Forms.Form.WndProc(Message& m)
   場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
失敗した操作:
Demand
失敗した最初のアクセス許可の種類:
System.Data.OleDb.OleDbPermission
失敗したアセンブリのゾーン:
Intranet


************** 読み込まれたアセンブリ **************
mscorlib
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.1433 (REDBITS.050727-1400)
    コードベース: file:///c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
***
    アセンブリ バージョン: 1.0.0.0
    Win32 バージョン: 1.0.0.0
    コードベース: file://---/***.exe
----------------------------------------
System.Windows.Forms
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.1433 (REDBITS.050727-1400)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.1433 (REDBITS.050727-1400)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.1433 (REDBITS.050727-1400)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Data
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.1433 (REDBITS.050727-1400)
    コードベース: file:///C:/WINDOWS/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Xml
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.1433 (REDBITS.050727-1400)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Windows.Forms.resources
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.1433 (REDBITS.050727-1400)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_ja_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
mscorlib.resources
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.1433 (REDBITS.050727-1400)
    コードベース: file:///c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
System.Configuration
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.1433 (REDBITS.050727-1400)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Transactions
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.1433 (REDBITS.050727-1400)
    コードベース: file:///C:/WINDOWS/assembly/GAC_32/System.Transactions/2.0.0.0__b77a5c561934e089/System.Transactions.dll
----------------------------------------

************** JIT デバッグ **************
Just-In-Time (JIT) デバッグを有効にするには、このアプリケーション、
またはコンピュータ (machine.config) の構成ファイルの jitDebugging 
値を system.windows.forms セクションで設定しなければなりません。
アプリケーションはまた、デバッグを有効にしてコンパイルされなければ
なりません。

例:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

JIT デバッグが有効なときは、このダイアログ ボックスで処理するよりも、
ハンドルされていない例外はすべてコンピュータに登録された
JIT デバッガに設定されなければなりません。


引用返信 編集キー/
■58559 / inTopicNo.2)  Re[1]: サーバ上に配置したプログラムを動かしたい
□投稿者/ Azulean (725回)-(2011/04/14(Thu) 22:29:34)
No58557 (うず さん) に返信
> サーバのアクセス権はなるべく変更せず、アプリケーションの設定またはソースコード上から解決できる方法をご存知の方、教えてください。

アプリケーションの設定やソースコードで回避できたらコードアクセスセキュリティの意味がないので、残念ながらそのような方法はありません。

アプリケーションを実行するマシン(サーバーではなく利用しているマシンです)のコードアクセスセキュリティで緩和するような設定に変更するか、.NET Framework 3.5 SP1 を導入して結果的に緩和するか、サーバー上にファイルを置いたまま実行することを諦めるかのいずれかしかありません。
(設定を変える、.NET Framework 3.5 SP1 を入れるのいずれの手も、実行するマシンすべてに手を入れないといけません)

ところで、mdb ファイルを共有フォルダーに置いたまま実行するとのことですが、複数のマシンから同時に実行された場合は大丈夫ですか?
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -