web-dev-qa-db-ja.com

C#リモーティング-CustomErrorsをオフにする方法

リモーティングを使用してサーバーアプリに接続しようとすると、次のエラーが発生します。

リモートサーバーへの接続中に問題が発生したようです:
サーバーで内部エラーが発生しました。詳細については、サーバーの.configファイルでcustomErrorsをオフにしてください。

これは私のサーバーアプリのコードです:

TcpChannel tcpChannel = new TcpChannel(999);
MyRemoteObject remObj = new MyRemoteObject (this);
RemotingServices.Marshal(remObj, "MyUri");
ChannelServices.RegisterChannel(tcpChannel);

初めて動作するようですが、サーバーアプリを再起動しないとエラーが発生します。

何かが適切にクリーンアップされていないと思いますが、customErrorがまだオンになっているので何がわからないのです。

私が始めるアイデア。ありがとう。

[編集] -Gulzarのおかげで、上記のコードを次のように変更したところ、エラーが表示されました。

RemotingConfiguration.CustomErrorsMode = CustomErrorsModes.Off;
TcpChannel tcpChannel = new TcpChannel(999);
MyRemoteObject remObj = new MyRemoteObject (this);
RemotingServices.Marshal(remObj, "MyUri");
ChannelServices.RegisterChannel(tcpChannel);
31
HAdes

.Net 1.0/1.1の場合、サーバーをリモート処理するための構成ファイルが必要です

<ServerEXE>.configファイルがない場合は、作成して次のようにします。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <system.runtime.remoting>    
      <customErrors mode="off" />
   </system.runtime.remoting>
</configuration>

.Net 2.0の場合、次を使用できます RemotingConfiguration.CustomErrorsMode プロパティ

37
Gulzar Nazim

サーバーファイルで、次を使用します。

RemotingConfiguration.CustomErrorsEnabled(bool);
5
sometimes

CustomErrorsをオフにするには、サーバーでweb.config fileを開きます。 customErrorsタグがある場合は、それを変更します。ない場合は追加します。

この目的では、<customErrors mode="Off"/>である必要があります。

実際にカスタムエラーページを使用している場合は、問題を見つけたらこの設定を変更することをお勧めします。

0
DOK