C # Remoting - Como desligar CustomErrors
-
03-07-2019 - |
Pergunta
I recebendo o seguinte erro quando eu tento ligar para o meu aplicativo de servidor usando comunicação remota:
Um problema parece ter ocorrido enquanto a conexão com o servidor remoto:
Servidor encontrou um erro interno. Para mais informações, desligue customErrors no arquivo .config do servidor.
Este é o código no meu aplicativo de servidor:
TcpChannel tcpChannel = new TcpChannel(999);
MyRemoteObject remObj = new MyRemoteObject (this);
RemotingServices.Marshal(remObj, "MyUri");
ChannelServices.RegisterChannel(tcpChannel);
Parece que funciona pela primeira vez, mas a menos que o aplicativo servidor for reiniciado o erro ocorre.
Eu acho que algo não está sendo limpo corretamente, mas eu não tenho certeza do que como o customError ainda está ligado.
Todas as ideias onde eu começar. Obrigado.
[EDIT] - Graças a Gulzar, eu modifiquei meu código acima para o seguinte e agora os erros são mostrados:
RemotingConfiguration.CustomErrorsMode = CustomErrorsModes.Off;
TcpChannel tcpChannel = new TcpChannel(999);
MyRemoteObject remObj = new MyRemoteObject (this);
RemotingServices.Marshal(remObj, "MyUri");
ChannelServices.RegisterChannel(tcpChannel);
Solução
Para .Net 1.0 / 1.1, você precisa de um arquivo de configuração para servidor remoto
Se você não tem um arquivo <ServerEXE>.config
, crie uma e têm este nele:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.runtime.remoting>
<customErrors mode="off" />
</system.runtime.remoting>
</configuration>
Para Net 2.0, você pode usar RemotingConfiguration.CustomErrorsMode propriedade
Outras dicas
No arquivo do servidor, use:
RemotingConfiguration.CustomErrorsEnabled(bool);
Para desligar customErrors, abra o web.config file
no servidor. Se houver um tag customErrors
, alterá-lo. Se não houver um, adicioná-lo.
Deve ser <customErrors mode="Off"/>
para esta finalidade.
Se você está realmente usando uma página de erro personalizada, você vai querer alterar esta definição, uma vez que você encontrou o seu problema.