C# Remoting – как отключить CustomErrors
-
03-07-2019 - |
Вопрос
Я получаю следующую ошибку при попытке подключиться к серверному приложению с помощью удаленного взаимодействия:
Кажется, возникла проблема при подключении к удаленному серверу:
На сервере произошла внутренняя ошибка.Для получения дополнительной информации отключите customErrors в файле .config сервера.
Это код моего серверного приложения:
TcpChannel tcpChannel = new TcpChannel(999);
MyRemoteObject remObj = new MyRemoteObject (this);
RemotingServices.Marshal(remObj, "MyUri");
ChannelServices.RegisterChannel(tcpChannel);
Кажется, это работает с первого раза, но если серверное приложение не будет перезапущено, возникнет ошибка.
Я предполагаю, что что-то не очищается должным образом, но я не уверен, что именно, поскольку customError все еще включен.
Есть идеи, с чего начать.Спасибо.
[РЕДАКТИРОВАТЬ] - Благодаря Гульзару я изменил свой код выше следующим образом, и теперь отображаются ошибки:
RemotingConfiguration.CustomErrorsMode = CustomErrorsModes.Off;
TcpChannel tcpChannel = new TcpChannel(999);
MyRemoteObject remObj = new MyRemoteObject (this);
RemotingServices.Marshal(remObj, "MyUri");
ChannelServices.RegisterChannel(tcpChannel);
Решение
Для .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 свойство
Другие советы
В файле сервера используйте:
RemotingConfiguration.CustomErrorsEnabled(bool);
Чтобы отключить customErrors, откройте web.config file
на сервере.Если есть customErrors
тег, измените его.Если его нет, добавьте его.
Должен быть <customErrors mode="Off"/>
для этой цели.
Если вы действительно используете собственную страницу ошибок, вам нужно будет изменить этот параметр, как только вы обнаружите свою проблему.