2012-09-18 25 views
0

能够访问bigquery api并能够通过C#运行查询来获取数据,但是当我尝试从其他机器获取数据时无法获取数据。我得到访问令牌,但在执行查询时,我得到了带有消息 - “无法连接远程服务器”和内部执行的异常 - “尝试的操作不支持引用的对象类型”。BigQuery API - 无法连接远程服务器

有什么我需要做的是在开发过程中从多台机器上访问API。我试着对两台机器使用两个不同的clentId和Secret keys,但仍然没有工作。

请帮忙。

堆栈跟踪

at System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult, TransportContext& context) 
    at System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult) 
    at Google.Apis.Requests.Request.EndAttachBody(IAsyncResult asyncResult) 
    at System.Net.LazyAsyncResult.Complete(IntPtr userToken) 
    at System.Net.ContextAwareResult.CaptureOrComplete(ExecutionContext& cachedContext, Boolean returnContext) 
    at System.Net.ContextAwareResult.FinishPostingAsyncOp() 
    at System.Net.HttpWebRequest.BeginGetRequestStream(AsyncCallback callback, Object state) 
    at Google.Apis.Requests.Request.AttachBody(WebRequest request, Action`1 onRequestReady) 
    at Google.Apis.Requests.Request.CreateWebRequest(Action`1 onRequestReady) 
    at Google.Apis.Requests.Request.ExecuteRequestAsync(Action`1 responseHandler) 
    at Google.Apis.Requests.ServiceRequest`1.GetAsyncResponse(Action`1 responseHandler) 
    at Google.Apis.Requests.ServiceRequest`1.GetResponse() 
    at Google.Apis.Requests.ServiceRequest`1.Fetch() 

回答

1

没有 - 没有什么你从多台机器一般测试时需要做的。

尝试从无法连接的机器浏览到https://bigquery.cloud.google.com。这使用相同的基础API。或者尝试使用API​​浏览器:https://developers.google.com/apis-explorer/#p/

检索访问令牌并执行查询在不同的主机上完成。最有可能的情况是您有防火墙阻止对未知服务器的出站请求。

+0

谢谢瑞安,我们没有使用任何防火墙。并且能够使用BigQuery Browser工具Web界面运行查询。也可以浏览API资源管理器。但是,当我通过C#执行相同的操作时不起作用。 – Siddharood

+0

您是否需要通过代理,或者您是否有直接联系?我建议尝试从你的C#代码中对一个随机网站(比如说stackoverflow.com)发出一个HTTP请求,看看是否有可能。还建议在上面的问题中加入完整的堆栈跟踪。 –

+0

不,我们没有经过任何代理。正如你建议我试着从C#访问一些随机的网站,以及它的可能性。并且我编辑了包含堆栈跟踪的问题。 – Siddharood

相关问题