我试图使用简单的C#控制台应用程序访问Google API服务(在这种情况下为Plus服务)。每次我调用API函数,我遇到一个很奇怪的例外:Google Plus API C# - AccessViolationException
类型的未处理的异常“System.AccessViolationException” 发生在未知模块。
附加信息:试图读取或写入受保护的内存。 这通常表示其他内存已损坏。
这时候,我发现了API端点这样的例子发生了:
Client.People.Get("me").Execute();
这儿还有没有人之前有这个问题吗?
编辑:
我已经下载了GPlus样品,并仍然得到同样的问题,但现在里面:
Oauth2Service.TokeninfoRequest request = service.Tokeninfo();
我认为这里的常见的情况是有关生成的代码类:
编辑2:
我附加堆栈跟踪:
在Google.Apis.Plus.v1.PeopleResource.GetRequest.set_UserId(字符串值) 位于c:\ code.google.com \ google-api-dotnet-client \ default_gen \ Tools \ Google.Apis中的Google.Apis.Plus.v1.PeopleResource.GetRequest..ctor(IClientService服务,字符串userId)。 NuGet.Publisher \模板\卜ild \ Google.Apis.Plus.v1.cs:line 2661 at Google.Apis.Plus.v1.PeopleResource.Get(String userId)in c:\ code.google.com \ google-api-dotnet-client \ default_gen \ Tools \ Google.Apis.NuGet.Publisher \ Template \ Build \ Google.Apis.Plus.v1.cs:line 2649 at Core.External.GoogleService.GooglePlusApplicationClient.Test()in e:\ Copy \ Feedly \ Backend \ Core.External.GooglePlus \ GooglePlusApplicationClient.cs:线34 在FeedlyTest.Program.Main(字串[] args)在E:\项目\资讯提供ly \后端\测试\ Program.cs的:线88
编辑3:
当我使用Ctrl + F5组合时,它正在工作。 我读过该组合禁用调试器。首先想到,也许在调试器模式下,系统运行在32位(然后无法访问位于32位边界之外的内存)。 我试图将调试平台更改为64位,但它没有帮助。
您使用的是哪个版本的库?最新版本的核心库为1.8.2,G + API为1.8.1。*。你附加的文件是旧的。 – peleyal
我正在使用NUGET的最新版本(1.8.1),只是附加相关类(这是我通过谷歌搜索得到的)... 也有YouTube API的相同问题 – weizenberg
你在Visual Studio 2012或更高版本? – class