2011-11-22 9 views
14

Tengo un servicio web asmx ejecutándose en un servidor de prueba que tiene acceso anónimo habilitado.¿Por qué aparece la opción No se puede conectar con el servidor remoto desde una aplicación web y no desde una aplicación de consola?

Al agregar la referencia web para una aplicación de consola y llamar a un método simple Hello World modo:

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

Cuando hago exactamente lo mismo en la carga de la página de una aplicación web me sale un System.Net.WebException: {"Unable to connect to the remote server"} .

La excepción interna es {"No connection could be made because the target machine actively refused it 127.0.0.1:8888"}, errorCode 10061.

¿Por qué este trabajo desde una aplicación de consola y no una aplicación web?

+0

Recibí este mensaje mientras estaba conectado a la VPN –

Respuesta

27

Podría deberse a diferencias en la configuración de proxy entre aplicaciones. Consulte la documentación de MSDN alrededor del elemento Default Proxy en el archivo de configuración.

+6

No había ningún elemento defaultProxy en la aplicación.config o web.config. Se lo agregó a web.config y se configuró enabled = false. Se arregló el problema :) gracias – woggles

+3

Gracias !! Me estaba volviendo loco por esto, sin embargo fue todo lo que hice. Creé una entrada de proxy para filtrar el tráfico a través de fiddler. Después de un tiempo lejos del código, volví y encontré este error, Fiddler no estaba abierto, por lo tanto, el proxy estaba fallando. ¡Gracias de nuevo! – Dal

+0

Extraño. Tuve que agregarlo con default = "true". Afortunadamente después de algunas horas funciona :) – KoalaBear

13

Yo también estaba en una situación similar al utilizar la clase HttpClient del espacio de nombres System.Net.Http. Estaba tratando de hacer una llamada de red que pasa por el servidor proxy de la compañía.

Si bien esta llamada HttpClient fue capaz de resolver con éxito la IP de las DNS cuando se llama desde una aplicación de consola en Visual Studio, la resolución DNS falló cuando la llamada se realizó desde una API web. Y resultó que tenía que tener esta entrada en la web.config de la aplicación de API web.

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

Crédito para marcar la respuesta de 909 para orientarme en la dirección correcta. Por favor, consulte Default Proxy para obtener información adicional.

+0

Esto solucionó mi problema. Comenzó a funcionar después de que cambiara mis métodos a asincrónico. – Sal

+0

¡Este también funcionó para mí! Con el cartero mis solicitudes POST pasaron, sin embargo, en la aplicación api de Visual Studio recibí errores de conexión. – Diomos

0

Como @R Kiran Kumar sugiere, he tenido que añadir también los valores de 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

Primera referencia Remove web desde la consola plazo que el servicio web y copiar la URL vaya a su explorador de soluciones y agregue referencia web (Excluya el anterior)> Avanzado> Agregar referencia web agregue pegar URL luego agregue su nombre de referencia web y luego reconstruya su solución me funciona bien

Cuestiones relacionadas