2008-10-16 18 views
30

otrzymuję następujący błąd, gdy próbuję połączyć się z aplikacji serwera przy użyciu usług zdalnych:C# Remoting - Jak wyłączyć CustomErrors

Problem wydaje się, że wystąpił podczas łączenia się z serwerem zdalnym:
Serwer napotkał błąd wewnętrzny. Aby uzyskać więcej informacji, wyłącz opcję customErrors w pliku .config serwera.

Jest to kod na mojej aplikacji serwera:

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

Wydaje pracy po raz pierwszy, ale chyba aplikacja ponownym uruchomieniu serwera wystąpił błąd.

Zgaduję, że coś nie jest czyszczone prawidłowo, ale nie jestem pewien, co jest dalej, gdy niestandardowy błąd jest nadal włączony.

Wszelkie pomysły, od których zaczynam. Dzięki.

[EDIT] - Dzięki Gulzar, zmodyfikowałem mój kod wyżej i teraz następujące błędy są pokazane:

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

która wersja .NET? –

+0

Niedawno uaktualniony do wersji 3.5, ale jestem pewien, że był już taki sam wcześniej – HAdes

Odpowiedz

36

dla .NET 1.0/1.1, potrzebny jest plik konfiguracyjny dla serwera usług zdalnych

Jeśli nie masz pliku <ServerEXE>.config, utworzyć i mieć to w nim:

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

dla .NET 2.0, można użyć RemotingConfiguration.CustomErrorsMode własność

+1

To się udało, teraz widzę błędy, dziękuję. – HAdes

+1

Być może zechcesz poprawić brakujące nawiasy kątowe w powyższym kodzie XML dla nowszych użytkowników, którzy mogą być zdezorientowani. Jeśli to zrobisz, możesz usunąć ten komentarz. –

+0

Thanks Drew. Poprawione. –

0

Aby wyłączyć CustomErrors, otwórz web.config file na serwerze. Jeśli istnieje znacznik customErrors, zmień go. Jeśli go nie ma, dodaj go.

Do tego celu powinno być <customErrors mode="Off"/>.

Jeśli rzeczywiście używasz niestandardowej strony błędu, będziesz chciał zmienić to ustawienie po znalezieniu problemu.

5

W pliku na serwerze, należy:

RemotingConfiguration.CustomErrorsEnabled(bool);