2011-11-22 8 views
14

Ho un servizio Web asmx in esecuzione su un server di prova con accesso anonimo abilitato.Perché non riesco a connettere l'eccezione del server remoto da un'app Web e non dall'app console?

Quando aggiungo il riferimento web per un'applicazione console e chiamare un metodo semplice Ciao Mondo in questo modo:

PivotService.PivotService p = new PivotService.PivotService(); 
String s = p.SayHello(); 

Quando faccio esattamente la stessa cosa nel caricamento della pagina di un'applicazione web ottengo un System.Net.WebException: {"Unable to connect to the remote server"} .

L'eccezione interna è {"No connection could be made because the target machine actively refused it 127.0.0.1:8888"}, errorCode 10061.

Perché sarebbe questo lavoro da una console app e non una web app?

+0

Stavo ricevendo questo messaggio mentre era connesso alla VPN –

risposta

27

Potrebbe essere dovuto a differenze nelle impostazioni del proxy tra le applicazioni. Controlla la documentazione MSDN attorno all'elemento Default Proxy nel file di configurazione.

+6

Non c'era alcun elemento defaultProxy in app.config o web.config. Aggiunto a web.config e set enabled = false. Risolto il problema :) grazie – woggles

+3

Grazie !! Stavo impazzendo per questo, era comunque tutto mio. Avevo creato una voce proxy per filtrare il traffico fino al violinista. Dopo un po 'di tempo dal codice in cui sono ritornato e ho riscontrato questo errore, Fiddler non era aperto, quindi il proxy stava fallendo. Grazie ancora! – Dal

+0

Strano. Ho dovuto aggiungerlo con default = "true". Fortunatamente dopo alcune ore funziona :) – KoalaBear

13

Anch'io ero in una situazione simile durante l'utilizzo della classe HttpClient dallo spazio dei nomi System.Net.Http. Stavo cercando di effettuare una chiamata di rete che passa attraverso il server proxy aziendale.

Mentre questo HttpClient chiamata era in grado di risolvere con successo l'IP del DNS quando viene chiamato da una console app in Visual Studio la risoluzione DNS non è riuscita quando la chiamata è stata fatta da un API Web. E si è scoperto che dovevo avere questa voce nel web.config dell'app web api.

<system.net> 
    <defaultProxy /> 
</system.net> 

Credito per contrassegnare la risposta di 909 per avermi indicato nella giusta direzione. Si prega di consultare Default Proxy per ulteriori informazioni.

+0

Questo ha risolto il mio problema. Cominciò ad aprirsi dopo aver cambiato i miei metodi in asincrono. – Sal

+0

Questo ha funzionato anche per me! Con il postino le mie richieste POST sono passate comunque nell'applicazione API di Visual Studio. Stavo ricevendo errori di connessione. – Diomos

0

Come suggerisce @R Kiran Kumar, ho dovuto aggiungere anche i valori del proxy:

<system.net> 
    <defaultProxy> 
     <proxy usesystemdefault="False" 
      proxyaddress="Specify Your Proxy Address: Specify Port Number" 
      // Example, "http://192.168.0.10:1234" 
bypassonlocal="False"/> 
    </defaultProxy> 
    </system.net> 
0

primo riferimento Remove web da console periodo si servizio web e copiare l'URL vai al tuo esploratore di soluzioni e aggiungi riferimento web (Escludi il vecchio)> Avanzate> Aggiungi web reference aggiungi l'URL di incolla quindi aggiungi il tuo nome di riferimento web quindi ricostruisci la tua soluzione funziona perfettamente per me

Problemi correlati