2016-12-01 7 views
1

У меня есть приложение ASP.NET, которое использует DocumentDB .NET SDK (последняя версия v 1.10).View DocumentDB Локальный эмулятор HTTP-запросов в Fiddler из .NET SDK

Я использую new local emulator.

Когда приложение запускается локально, я не могу видеть запросы, сделанные моим .NET SDK, на локальный эмулятор в Fiddler. Тем не менее, я вижу в Fiddler запросы локального эмулятора, сделанные веб-приложением «Data explorer» (поставляется с локальным эмулятором) в моем браузере. Я также могу просматривать запросы Fiddler DocumentDB из моего локально развернутого веб-приложения на удаленной конечной точке DocumentDB (в Azure).

Я подозреваю, что в .NET SDK есть несколько конфигураций, чтобы запросы были перехвачены прокси-сервером Fiddler.

ответ

1

Мы, наконец, удалось найти решение с двумя вещами, чтобы изменить:

  • В documentdb клиента при создании экземпляра набор connectionPolicy.EnableEndpointDiscovery = false; (не заставляйте это производство)

  • И заменить documentdb конечной точки URL из https://localhost:8081 к https://localhost.fiddler:8081

+0

Сделал изменение имени хоста, как предложил Скрипач, но ваше предложение отключить обнаружение конечной точки произошло, спасибо! – benmccallum

0

Используете ли вы режим Direct при подключении к локальному эмулятору?

Fiddler не сможет перехватывать запросы при использовании прямого подключения, поскольку он может только перехватывать HTTP-трафик. Изменение политики подключения к шлюзу должно позволить fiddler перехватывать запросы.

+0

изменил политику подключения для DocumentDB клиента в C# код 'connectionPo licy.ConnectionMode = ConnectionMode.Gateway; connectionPolicy.ConnectionProtocol = Protocol.Https; 'Но это не решило мою проблему. –

0

Вы можете использовать скрипач, чтобы просмотреть запрос и ответ, если вы выбрали режим «Шлюз» или «DirectHttps». Когда вы используете .NET SDK, он автоматически не будет перенаправляться на прокси-сервер Fiddler, чтобы вы не увидели ваш запрос/ответ автоматически. Вы можете либо установить прокси-сервер в вашем приложении конфигурации

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

Или вы можете использовать https://localhost.fiddler, который будет проходить через прокси-скрипача, так что запрос/réponse захватывается. Обратите внимание, что этот параметр приведет к сбою запроса, если скрипт не работает.

+0

Не работает для меня. Я также пытался с 'bypassonlocal' до false –

+0

' bypassonlocal' не влияет на обход прокси-сервера .NET для запросов «localhost». – EricLaw