2011-06-08 23 views
5

He seguido Eric's advice y funciona bien, con la excepción de que las solicitudes que usan https a través de HttpWebRequest no se pueden conectar. En Fiddler, veo una solicitud de conexión que parece regresar bien y luego mi HttpWebRequest recibe un resultado con una ArgumentNullException.Depuración de tráfico HTTPS con Fiddler en Windows Phone Emulator

Aquí está la pila de llamadas de la excepción:

at System.IO.StringReader..ctor(String s) 
    at System.Net.Browser.HttpWebRequestHelper.ParseHeaders(Uri requestUri, SecurityCriticalDataForMultipleGetAndSet`1 headers, WebHeaderCollection collection, Boolean removeHttpOnlyCookies, HttpStatusCode& status, String& statusDescription) 
    at System.Net.Browser.ClientHttpWebResponse..ctor(String method, Uri url, HttpStatusCode status, String mime, SecurityCriticalDataForMultipleGetAndSet`1 headersString, Stream stream, Int32 expectedLen, CookieContainer cookieContainer) 
    at System.Net.Browser.ClientHttpWebResponse..ctor(String method, Uri url, HttpStatusCode status, String mime, SecurityCriticalDataForMultipleGetAndSet`1 headersString, Stream stream, CookieContainer cookieContainer) 
    at System.Net.Browser.ClientHttpWebRequest.Failed(Object sender, EventArgs e) 
    at MS.Internal.InternalWebRequest.OnDownloadFailed(Object sender, ErrorEventArgs args) 
    at System.Windows.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args) 
    at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName) 

navegador funciona bien, mi conjetura es algún tipo de problema entre .Net en el teléfono y el proxy del violinista. Por cierto, lo mismo ocurre en el teléfono real e incluso en IPad (lo que significa que no es un problema específico de .Net)

¿Se puede reparar?

EDIT: Probablemente estoy en contra de alguna restricción de seguridad que no entiendo. Intenté https://wellsfargo.com y https://mail.google.com y ambas devuelven la excepción "No encontrado" al usar Fiddler.

+0

No he probado ninguna codificación HTTPS con WP7, pero ¿podría tratarse de un problema de certificado? http://msdn.microsoft.com/en-us/library/gg521150%28v=VS.92%29.aspx – keyboardP

+0

Podría ser, pero no hay ServicePointManager en WP7 para omitir errores de certificación ... –

+0

errr ... ¿Cuál argumento es nulo en este caso? ¿Y cómo exactamente estás golpeando esto en un iPad? – EricLaw

Respuesta

11

Debe instalar Fiddler's Root Cert en el emulador. Abre Mobile IE y busca: http://computername:8888/fiddlerroot.cer. Cuando se le solicite, instale el certificado. Una vez que haya terminado, el tráfico HTTPS pasará por el túnel a través del violín sin problemas.

+0

El problema también puede ser un conjunto "obsoleto" de certificados de violín en su máquina local: elimínelos y vuelva a agregarlos de la configuración HTTPS de Fiddler. –

+0

¡Fantástico! ¡El sitio web de violinista dio la impresión de que no era posible! –