使用 DotNetRDF 连接到 Virtuoso
Connect to Virtuoso with DotNetRDF
我尝试连接到我的 Virtuoso Server with dotnetrdf
. There is an example in the documentation 就像...
//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/"));
我用我的凭据替换了用户名和密码,但是当涉及到 virtuoso.LoadGraph
行时,我得到一个 FormatException
,上面写着:
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.
不幸的是,这在试图找出问题所在时并没有多大帮助。知道吗,我可以做些什么来缩小问题范围?
PS:我可以通过 https://myhost.org:8890/conductor
访问 Virtuoso conductor,我也尝试将端口 8890
作为参数(但我认为这不是所需的端口)结果。如果我省略端口,我会收到错误消息,即目标计算机拒绝连接。
提前致谢,
弗兰克
你的问题出在这里--
VirtuosoManager("https://myhost.org", 1111, "DB", "username", "password");
dotnetrdf
连接不是通过 http/https
;第一个参数应该只是一个主机名,即 myhost.org
.
只需将上面的内容更改为以下内容即可解决即时错误 --
VirtuosoManager("myhost.org", 1111, "DB", "username", "password");
我尝试连接到我的 Virtuoso Server with dotnetrdf
. There is an example in the documentation 就像...
//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/"));
我用我的凭据替换了用户名和密码,但是当涉及到 virtuoso.LoadGraph
行时,我得到一个 FormatException
,上面写着:
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.
不幸的是,这在试图找出问题所在时并没有多大帮助。知道吗,我可以做些什么来缩小问题范围?
PS:我可以通过 https://myhost.org:8890/conductor
访问 Virtuoso conductor,我也尝试将端口 8890
作为参数(但我认为这不是所需的端口)结果。如果我省略端口,我会收到错误消息,即目标计算机拒绝连接。
提前致谢,
弗兰克
你的问题出在这里--
VirtuosoManager("https://myhost.org", 1111, "DB", "username", "password");
dotnetrdf
连接不是通过 http/https
;第一个参数应该只是一个主机名,即 myhost.org
.
只需将上面的内容更改为以下内容即可解决即时错误 --
VirtuosoManager("myhost.org", 1111, "DB", "username", "password");