2012-12-13 6 views
6

Ich möchte odata Typ Provider verwenden, aber es verursacht nächsten Fehler beim Kompilieren: (407) proxy authentication required. Es gibt keine Fehler zur Entwurfszeit. Weiß jemand wie man den Proxy in Type Provider einstellt? Beispielcode:F # Odata-Service-Typ-Provider über HTTP-Proxy

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

Vielleicht senden Sie einige Hinweise liefert: http://www.markhneedham.com/blog/2009/07/11/f -download-a-file-von-hinter-a-proxy/ – Christian

+0

Was passiert, wenn Sie Anmeldeinformationen angeben? 'Ebay.Credentials <- System.Net.NetworkCredential (" user "," pass "," domain ")' –

+0

Sorry, das war blöd, du hast gesagt es war während der Kompilierzeit, nicht Laufzeit. –

Antwort

2

Dieses blog posting erwähnt einige Beispiel-Code, die Proxies abdecken.

Der Freebase Typ Provider kann mit .NET 3.5, .NET 4.0, .NET 4.5, Silverlight und Portable Programmierung verwendet werden. In einigen Fällen kann ein Proxy erforderlich sein. Die Projekte in Tests \ ProjectsUsingTypeProvider.sln zeigen einige Beispielbibliotheken für diese verschiedenen Fälle.

Vielleicht möchten Sie auch speziell auf this file aussehen.

+0

Sie meinen Proxy als Designmuster. Aber ich meine Proxy als http Web Proxy – msmaximuss

+0

Nein, sie meinen Proxy wie in "http Web Proxy". Schau dir die Datei an, die ich gerade zu meiner Antwort hinzugefügt habe. –

0

Versuchen Sie, einen Standard-Web-Proxy angeben, wie folgt:

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

Oder Sie können versuchen, einen Proxy zu verwenden, die in IE angegeben wurde, wie folgt:

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

Wenn Sie einen Fehler haben, während Kompilieren dann ist dies wahrscheinlich wegen F # Compiler (Fsc.exe) kann keine Verbindung zum Proxy-Server. Sie können dieses Problem beheben, indem Fsc.exe.config ändern, fügen Sie einfach den folgenden Text unter dem configuration Abschnitt:

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