2011-01-10 10 views
0

Ich habe einen Standard asmx Service, auf dem GET nicht erlaubt ist.Wie man Fehler 500 behandelt, der von asmx Service zurückkommt

Wenn ich die asmx http://mysite/myservice.asmx/myoperation im Browser (GET) besuchen bekomme ich eine Stack-Trace an den Client gespült und ich kann von Fiddler sehen, es ist ein 500 interner Systemfehler. Nichts von meinem Code wird getroffen.

Ich habe eine Anforderung, einen Stack-Trace nicht anzuzeigen, wenn die URL vom Browser aus aufgerufen wird. Daher möchte ich auf eine benutzerdefinierte Fehlerseite verweisen, die ich eingerichtet habe.

Ich habe eine Application_Error auf der global.asax, aber es tritt nicht in dieser bestimmten Instanz.

Jede Hilfe wird geschätzt!

Antwort

1

Was passiert, wenn Sie GET-Anfragen über

<configuration> 
    <system.web> 
     <webServices> 
     <protocols> 
      <remove name="HttpPost"/> 
      <remove name="HttpGet"/> 
      <remove name="Documentation"/> 
     </protocols> 
     </webServices> 
    </system.web> 
</configuration> 
+0

mmm deaktivieren, interessant, wenn ich GET in der web.config entfernen, wie Sie vorschlagen dann funktioniert es (geht auf die Fehlerseite), aber ich kann es nicht dort tun Weil einige der anderen Dienste GETs erlauben müssen – JohnIdol

+0

kann ich sowas auf der Service-Ebene anstatt auf der Anwendungsebene tun? – JohnIdol

+0

@JohnIdol: Sie können die SOAP-Dienste in einen tieferen Ordner stellen und das obige in eine web.config in diesem Ordner setzen (oder verwenden Sie das '' Element um anzugeben, dass das obige nur für den Unterordner gilt). –

Verwandte Themen