Поставщик типа службы F # Odata через http-прокси

Я хочу использовать провайдера типа odata, но при компиляции возникает следующая ошибка: (407) proxy authentication required. Ошибок во время проектирования нет. Кто-нибудь знает, как установить прокси в типе провайдера? Образец кода:

open Microsoft.FSharp.Data.TypeProviders
type db = ODataService<"http://ebayodata.cloudapp.net/">
[<EntryPoint>]
     let main argv=
           let eBay = db.GetDataContext()
           0

person msmaximuss    schedule 13.12.2012    source источник
comment
Возможно, этот пост дает некоторые подсказки: markhneedham.com/blog/2009/07/11/   -  person Christian    schedule 13.12.2012
comment
Что произойдет, если вы укажете учетные данные? Ebay.Credentials <- System.Net.NetworkCredential("user", "pass", "domain")   -  person Robert Jeppesen    schedule 13.12.2012
comment
Извините, это было глупо, вы сказали, что это было во время компиляции, а не во время выполнения.   -  person Robert Jeppesen    schedule 13.12.2012


Ответы (2)


Этот публикация в блоге упоминает пример кода, который может охватывать прокси.

Поставщик типа Freebase можно использовать с программированием .NET 3.5, .NET 4.0, .NET 4.5, Silverlight и Portable. В некоторых случаях может понадобиться прокси. В проектах Tests\ProjectsUsingTypeProvider.sln показаны некоторые примеры библиотек для этих различных случаев.

Вы также можете просмотреть этот файл.

person Onorio Catenacci    schedule 13.12.2012
comment
Они означают прокси как шаблон проектирования. Но я имею в виду прокси как http веб-прокси - person msmaximuss; 13.12.2012
comment
Нет, они имеют в виду прокси, как в http веб-прокси. Посмотрите на файл, который я только что добавил в свой ответ. - person Onorio Catenacci; 14.12.2012

Попробуйте указать веб-прокси по умолчанию следующим образом:

open System.Net // for WebProxy etc.
open Microsoft.FSharp.Data.TypeProviders

// put here actual proxy address
let proxy = new WebProxy("http://192.168.1.1:3128") :> IWebProxy
// put here your credentials if needed
proxy.Credentials <- NetworkCredential("proxy_user", "password")
// set up a default proxy
WebRequest.DefaultWebProxy <- proxy

// here the default proxy will be used
type db = ODataService<"http://ebayodata.cloudapp.net/">

Или вы можете попробовать использовать прокси, который был указан в IE следующим образом:

WebRequest.DefaultWebProxy <- WebRequest.GetSystemWebProxy()
WebRequest.DefaultWebProxy.Credentials <- CredentialCache.DefaultNetworkCredentials

Если у вас возникла ошибка при компиляции, возможно, это связано с тем, что компилятор F# (Fsc.exe) не может подключиться к прокси-серверу. Вы можете исправить это, изменив Fsc.exe.config, просто добавив следующий текст в раздел configuration:

  <system.net>
    <defaultProxy useDefaultCredentials="true" />    
  </system.net>
person Kirill V. Lyadvinsky    schedule 14.05.2015