2009-08-07 7 views
1

Ich habe zwei ASP.NET-Projekte in meiner Lösung und auf verschiedenen Localhost-Ports ausgeführt, wenn ich das Debuggen starte. Ich habe einen generischen Handler in Standort A, die von Seite B genannt wird:Aufruf über zwei Visual Studio-Localhosts mit WebClient

String url = "http://localhost:1234/UrlOnSiteA.ashx"; 
WebClient client = New WebClient(); 
client.Credentials = CredentialCache.DefaultNetworkCredentials; 
client.OpenRead(url); 

Der Openread Aufruf eine Ausnahme mit einem 500-Fehler wirft, und ich weiß nicht, warum. Die Fehlermeldung lautet:

System.Net.WebException: The remote server returned an error: (500) Internal Server Error.

Weitere Informationen:

  • Ein Haltepunkt auf der ersten Zeile des Handler-Code wird nicht getroffen.
  • Der Handler wird ordnungsgemäß ausgeführt (und trifft den Haltepunkt), wenn seine URL in einem Browser verwendet wird.
  • Visual Studio 2008 Professional mit .NET 2.0-Sites.

Ich vermute, dass es ein Konfigurationsproblem ist. Irgendwelche Ideen?

+1

Haben Sie Glück, diesen herauszufinden? War einer der diagnostischen Schritte in meiner Antwort nützlich? –

+0

Danke für die Antwort auf Justin. Gute Vorschläge, aber ich habe ein Tumbleweed-Abzeichen für die Frage, die ich weiter verfolgt habe, und brauche sie eigentlich nicht mehr zu reparieren. Ich akzeptiere deine Antwort auf Vollständigkeit. – harriyott

Antwort

1

Ich würde dies zuerst diagnostizieren, indem ich herausfinden würde, was die Ausnahme verursacht. Sehen Sie sich die Response-Eigenschaft der WebException an und lesen Sie den zurückgegebenen HTML-Code. Irgendwelche Hinweise? (Möglicherweise müssen Sie benutzerdefinierte Fehler in Ihrer web.config deaktivieren, um die tatsächliche Fehlerantwort zu sehen.)

Ein anderer Ansatz, um die gleichen Antwortinformationen zu erhalten, wäre, Fiddler zu verwenden und den Proxy Ihres WebClient-Aufrufs auf den Fiddler zu setzen Proxy-Adresse. Dann können Sie Fiddler verwenden, um die Antwort HTML zu sehen.

Ein etwas anderer Ansatz wäre, die Ausnahmeneinstellungen in Visual Studio so zu ändern, dass der Debugger bei jeder WebException ausgelöst wird. Sie können dies über das Dialogfeld Debuggen ... Ausnahmen ... tun.