2012-12-13 12 views
6

Desidero utilizzare il provider di tipo odata ma causa l'errore successivo durante la compilazione: (407) proxy authentication required. Non ci sono errori in fase di progettazione. Qualcuno sa come impostare il proxy in tipo provider? Codice di esempio:F # Provider di tipo di servizio Odata tramite proxy http

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

Forse questo post fornisce alcuni indizi: http://www.markhneedham.com/blog/2009/07/11/f -downloading-a-file-from-behind-a-proxy/ – Christian

+0

Cosa succede se si specificano le credenziali? 'Ebay.Credentials <- System.Net.NetworkCredential (" utente "," pass "," dominio ")' –

+0

Mi dispiace, è stato stupido, hai detto che era in fase di compilazione, non in fase di esecuzione. –

risposta

2

Questo blog posting cita alcuni esempi di codice che può coprire i proxy.

Il provider di tipo Freebase può essere utilizzato con .NET 3.5, .NET 4.0, .NET 4.5, Silverlight e programmazione portatile. In alcuni casi potrebbe essere necessario un proxy. I progetti in Tests \ ProjectsUsingTypeProvider.sln mostrano alcune librerie di esempio per questi diversi casi.

Si potrebbe desiderare di guardare allo this file nello specifico.

+0

Si intendono proxy come modello di progettazione. Ma intendo proxy come proxy web http – msmaximuss

+0

No, intendono proxy come in "http web proxy". Guarda il file che ho appena aggiunto alla mia risposta. –

0

tenta di specificare un proxy web di default come segue:

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/"> 

Oppure si può provare ad utilizzare un proxy che è stato specificato in IE come segue:

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

Se si dispone di un errore durante la compilazione quindi è probabilmente dovuta al fatto che il compilatore F # (Fsc.exe) non può connettersi al server proxy. È possibile risolvere questo problema modificando Fsc.exe.config, basta aggiungere il seguente testo nella sezione configuration:

<system.net> 
    <defaultProxy useDefaultCredentials="true" />  
    </system.net> 
Problemi correlati