- - PR -
.NET リモーティングにて、ErrObjectを正しくクライアント側に返せない
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-05-21 12:33
VB6で開発したコンポーネントサービスを利用した3階層C/Sシステムを、
VB.NET言語にコンバートしています。 今回、コンポーネントサービスの代わりに、.NET リモーティングを 利用することとなりましたが、エラー処理について困っております。 サーバ側で発生した例外処理を、クライアント側にそのままエラーとして、 返すようにしているのですが、クライアント側で、ErrObjectを確認すると Err.Numberに常に「5」が設定されており、サーバ側で設定されている値を 参照することができません。 リモーティングを利用しない呼び出しの場合は、問題なくErr.Numberが参照できます。 --------------------------------------------------------------------------- サンプルソース: 'クライアント側 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'コンフィグファイル読み込み System.Runtime.Remoting.RemotingConfiguration.Configure(Process.GetCurrentProcess.MainModule.ModuleName.Replace(".vshost", "") & ".config", False) End Sub 'リモーティングOFF Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim objServer As New Server.Class1 On Error GoTo ErrorHandler objServer.Method1() Exit Sub ErrorHandler: MessageBox.Show("Err.Number = " & Err.Number & ";" & _ "Err.Source = " & Err.Source & ";" & _ "Err.Description = " & Err.Description) End Sub 'サーバ側 Public Class Class1 Inherits MarshalByRefObject Public Sub Method1() Err.Raise(-2147221269, "エラー", "エラーメッセージです。") End Sub End Class ※サーバ側、クライアント側のコンフィグファイル内には、以下の記述を入れています。 <customErrors mode="off"/> --------------------------------------------------------------------------- Err.Discriptionは、正しく設定されていますので、 シリアライズの問題ではないのではないかと思っております。 非構造化例外処理は、リモーティングではサポートされないのでしょうか? もし回避方法等ありましたら教えてください。 環境:Visual Studio 2008 .NET Framework 3.5 VB.NET 2008 |
1