2013-08-07 3 views
1

В качестве приложения для песочницы я написал консольное приложение, которое будет вызывать RestApi для служб хранения. Приложение работает как ожидалось, и я могу видеть вызовы, сделанные приложением в Fiddler . Я написал эту песочницу, чтобы я мог специально использовать вызовы Rest API.Вызов RestAPI для эмулятора хранилища от ConsoleApp, запрос не отображается в скрипте

Точка, за которой я застрял, - это просмотр вызовов REST, выполненных моим приложением против эмулятора хранилища в Fiddler. Я знаю, если я использую клиентскую библиотеку хранения (лазурь SDK), то можно было бы использовать после

UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://ipv4.fiddler 

Я попытался установить прокси на HttpWebRequest, но это также не помогает me.Following я отрывок из моего кода ,

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URI); 
WebRequest.DefaultWebProxy = new WebProxy("http://ipv4.fiddler"); 

или

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URI); 
request.Proxy = new WebProxy("http://ipv4.fiddler"); 

или

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URI); 
request.Proxy = new WebProxy("127.0.0.1",8888); 

также попытался создать это в app.config как

<system.net> 
    <defaultProxy> 
     <proxy 
       proxyaddress="http://ipv4.fiddler" 
       bypassonlocal="False" /> 
    </defaultProxy> 
    </system.net> 

но никто, кажется, работает для меня. Опять же, чтобы быть понятным о моем вопросе, приложение работает отлично для меня как для эмулятора хранилища, так и для моей подписки. Единственная проблема заключается в том, что я не могу видеть вызов в Fiddler, если выполняется против эмулятора хранилища.

Спасибо.

+1

FWIW, кроме того, что «ipv4.fiddler» имеет смысл только после того, как трафик на самом деле попадает в прокси-сервер, HTTP: //ipv4.fiddler не в одиночку никогда не работает, так как вы не указали порт. – EricLaw

ответ

2

Чтобы отслеживать ваши запросы через Fiddler, просто изменить конечную точку из:

http://127.0.0.1:10000 

в

http://ipv4.fiddler:10000 

Также не требуется установка defaultProxy в файле app.config. Если вы держите его там, измените proxyaddress с http://ipv4.fiddler на http://127.0.0.1:8888. Так что ваша установка файла app.config будет выглядеть примерно так:

<system.net> 
    <defaultProxy> 
    <proxy usesystemdefault="False" 
      proxyaddress="http://127.0.0.1:8888" 
      bypassonlocal="False" /> 
    </defaultProxy> 
</system.net> 

Это как клиентская библиотека хранения делает это (https://github.com/WindowsAzure/azure-sdk-for-net/blob/master/microsoft-azure-api/Services/Storage/Lib/Common/CloudStorageAccount.cs - Бог благословляет команду Windows Azure для создания их код доступен на Github)!

internal static CloudStorageAccount GetDevelopmentStorageAccount(Uri proxyUri) 
{ 
    if (proxyUri == null) 
    { 
     return DevelopmentStorageAccount; 
    } 

    string prefix = proxyUri.Scheme + "://" + proxyUri.Host; 

    return new CloudStorageAccount(
     new StorageCredentials(DevstoreAccountSettingString, DevstoreAccountKey), 
     new Uri(prefix + ":10000/devstoreaccount1"), 
     new Uri(prefix + ":10001/devstoreaccount1"), 
     new Uri(prefix + ":10002/devstoreaccount1")); 
}