2016-10-06 8 views
0

Ich versuche, eine Verbindung zu meinem Virtuoso Server mit dotnetrdf. Es gibt an example in the documentation, die wie geht ...Verbinden mit Virtuoso mit DotNetRDF

//Create our Storage Provider - this example uses Virtuoso Universal Server 
VirtuosoManager virtuoso = new VirtuosoManager("https://myhost.org", 1111, "DB", "username", "password"); 

//Load the Graph into an ordinary graph instance first 
Graph g = new Graph(); 
virtuoso.LoadGraph(g, new Uri("http://example.org/")); 

I ersetzt Benutzername und Passwort mit meinen Zugangsdaten, aber wenn es um die virtuoso.LoadGraph Linie kommt, erhalte ich eine FormatException, der sagt:

The input string has the wrong format with the following stacktrace: 

bei System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) 
bei System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) 
bei OpenLink.Data.Virtuoso.TcpConnection.GetEndPoint(String ds) 
bei OpenLink.Data.Virtuoso.TcpConnection.Open(ConnectionOptions options) 
bei OpenLink.Data.Virtuoso.VirtuosoConnection.CreateInnerConnection(ConnectionOptions options, Boolean enlist) 
bei OpenLink.Data.Virtuoso.ConnectionPool.GetConnection(ConnectionOptions options, VirtuosoConnection connection) 
bei OpenLink.Data.Virtuoso.VirtuosoConnection.Open() 
bei VDS.RDF.Storage.VirtuosoManager.Open(Boolean keepOpen, IsolationLevel level) 
bei VDS.RDF.Storage.VirtuosoManager.LoadGraph(IRdfHandler handler, Uri graphUri) 
bei VDS.RDF.Storage.VirtuosoManager.LoadGraph(IGraph g, Uri graphUri) 
bei VirtuosoTest.MainWindow.LoadGraph() in C:\Users\devfs\Documents\Visual Studio 2015\Projects\Test\VirtuosoTest\VirtuosoTest\MainWindow.xaml.cs:Zeile 40. 
bei VirtuosoTest.MainWindow..ctor() in C:\Users\devfs\Documents\Visual Studio 2015\Projects\Test\VirtuosoTest\VirtuosoTest\MainWindow.xaml.cs:Zeile 30. 

Leider Das hilft nicht viel, wenn man versucht herauszufinden, was falsch ist. Irgendeine Idee, was ich tun kann, um das Problem einzugrenzen?

PS: Ich kann den Virtuoso-Leiter über https://myhost.org:8890/conductor zugreifen und habe auch versucht, den Port 8890 als Parameter (aber ich denke, das ist nicht der benötigte Port) mit dem gleichen Ergebnis. Wenn ich den Port weglasse, bekomme ich den Fehler, dass der Zielcomputer die Verbindung ablehnt.

Vielen Dank im Voraus,
Frank

Antwort

2

Ihr Problem hier liegt -

VirtuosoManager("https://myhost.org", 1111, "DB", "username", "password"); 

Die dotnetrdf Verbindung nicht über http/https; das erste Argument sollte nur ein Hostname sein, d. h. myhost.org.

einfach die oben auf die sich ändernden folgenden sollte die sofortige Fehler beheben -

VirtuosoManager("myhost.org", 1111, "DB", "username", "password"); 
+0

Das ist es! Vielen Dank! – Aaginor