C#Remoting - 如何关闭CustomErrors

时间:2008-10-16 16:11:55

标签: c# .net remoting custom-errors

当我尝试使用远程处理连接到我的服务器应用程序时出现以下错误:

  

连接到远程服务器时似乎出现了问题:
  服务器遇到内部错误。有关更多信息,请关闭服务器.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);

3 个答案:

答案 0 :(得分:37)

对于.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属性

答案 1 :(得分:5)

在服务器文件中,使用:

RemotingConfiguration.CustomErrorsEnabled(bool);

答案 2 :(得分:0)

要关闭customErrors,请打开服务器上的web.config file。如果有customErrors标记,请进行更改。如果没有,请添加它。

为此目的应为<customErrors mode="Off"/>

如果您确实使用自定义错误页面,则在找到问题后,您需要更改此设置。