Domanda

Sto tentando di utilizzare BugzScout di Fogbugz per inviare automaticamente eccezioni di applicazione non gestite al mio account Fogbugz on demand. Ho redatto una classe wrapper per questo e tutto sembra essere solo groovy - sulla mia scatola. Testando lo stesso codice nell'ambiente di produzione, dietro un proxy che richiede autenticazione, non ho avuto altro che problemi.

Sono andato a lavorare modificando il codice BugzScout per farlo autenticare con il proxy e dopo aver provato molti metodi diversi suggeriti tramite una ricerca su Google, ne ho trovato uno che funziona! Ma ora sto ricevendo una "quotazione attivamente rifiutata" errore dallo stesso Fogbugz, e non so cosa fare.

Ecco il codice in cui BugzScout si connette tramite un Webnet client per inviare un nuovo caso, con le mie modifiche per gestire il nostro proxy. Che cosa sto facendo per indurre Fogbugz a rifiutare la mia richiesta? Ho rimosso tutto il codice non relativo al client Web dalla procedura per facilitare la lettura.

public string Submit(){         
        WebClient client = new WebClient();
        WebProxy proxy = new WebProxy();
        proxy.UseDefaultCredentials = true;            
        client.Proxy = proxy;            
        Byte[] response = client.DownloadData(fogBugzUrl);
        string responseText = System.Text.Encoding.UTF8.GetString(response);
        return (responseText == "") ? this.defaultMsg : responseText;
    }

L'URL è corretto e il caso è compilato correttamente, questo è stato verificato.

EDIT: informazioni aggiuntive.

  • Utilizzo di Fogbugz on Demand.
  • Utilizzo del codice FogBugz.net nella sua interezza, con solo queste aggiunte
       WebProxy proxy = new WebProxy();
       proxy.UseDefaultCredentials = true;            
       client.Proxy = proxy;
È stato utile?

Soluzione

Ho ottenuto la correzione da Fogbugz: questo è il codice di rete appropriato per ottenere l'autenticazione proxy e non autenticarsi erroneamente con Bugzscout.

WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;
WebRequest request = WebRequest.Create(fogBugzUrl);
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
request.Proxy.Credentials = CredentialCache.DefaultNetworkCredentials;     
Stream requestStream = request.GetRequestStream();
requestStream.Write(bytes, 0, bytes.Length);
requestStream.Close();

Altri suggerimenti

Il tuo fogbugzUrl utilizza l'autenticazione di base HTTP? È SSL (ospitato su richiesta?)

Il messaggio di connessione rifiutata attivamente verrebbe dal server web stesso, non proprio da FogBugz.

Puoi pubblicare il codice di stato HTTP?

Una cosa da notare se si utilizza FogBugz On Demand è che DEVI usare https: // url (non l'URL http).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top