使用google drive从web服务上载文件c#基uri=null失败
我实现了一个web服务,它调用一个类,该类将pdf上传到Google Drive上的文件夹。然后我请求一个文件夹内容列表 问题是,如果使用main调用,则会上载pdf并完成列表 如果是webservice进行调用,则列表已完成,但上载失败,我可以在响应中看到异常: 基本uri为空 如果在使用main调用之后,我尝试使用localhost中的web服务(通过SoapUi)调用,那么web服务也可以上载pdf 实现gdrive API的类是相同的 我用来从gdrive获取服务的代码是:使用google drive从web服务上载文件c#基uri=null失败,c#,web-services,google-drive-api,google-api-dotnet-client,C#,Web Services,Google Drive Api,Google Api Dotnet Client,我实现了一个web服务,它调用一个类,该类将pdf上传到Google Drive上的文件夹。然后我请求一个文件夹内容列表 问题是,如果使用main调用,则会上载pdf并完成列表 如果是webservice进行调用,则列表已完成,但上载失败,我可以在响应中看到异常: 基本uri为空 如果在使用main调用之后,我尝试使用localhost中的web服务(通过SoapUi)调用,那么web服务也可以上载pdf 实现gdrive API的类是相同的 我用来从gdrive获取服务的代码是: var ke
var keyFilePath = @"c:\Progetti\pippo.p12";
var serviceAccountEmail = "reportbatch@appspot.gserviceaccount.com";
var certificate = new X509Certificate2(keyFilePath, "notasecret",
X509KeyStorageFlags.Exportable);
var credential = new ServiceAccountCredential(new
ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = Scopes
}.FromCertificate(certificate));
var service = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = _ApplicationName,
});
奇怪的是,列表是有效的,上传不是。
似乎是关于许可,但这两个电话之间的区别在哪里
因为这个原因我被封锁了,有人能帮我吗
大卫好的,我猜一猜,然后说出它的权限。当您运行它时,它将按您的方式运行,但是当web服务运行它时,它将在设置web服务的应用程序池下运行。首先,我要确保web服务能够访问密钥文件 然后我将更改以下行
var certificate = new X509Certificate2(keyFilePath, "notasecret",
X509KeyStorageFlags.Exportable);
到
我已经在Azure上看到了上述原因问题,并且此修复了它可能也适用于您。好的,我将猜测并说出它的权限。当您运行它时,它将按您的方式运行,但是当web服务运行它时,它将在设置web服务的应用程序池下运行。首先,我要确保web服务能够访问密钥文件 然后我将更改以下行
var certificate = new X509Certificate2(keyFilePath, "notasecret",
X509KeyStorageFlags.Exportable);
到
我已经在Azure上看到了上述原因问题,并且此解决方案可能也适用于您。感谢DalmTo的快速回答。我刚刚解决了。错误base uri=null确实是某些dll版本的问题。安装并重新安装Google drive APi后,一切正常。奇怪的是,用main运行它我没有问题。你能用你的最终解决方案为这个线程添加一个答案吗,这对以后跟踪它会很好。谢谢谢谢DalmTo的快速回答。我刚刚解决了。错误base uri=null确实是某些dll版本的问题。安装并重新安装Google drive APi后,一切正常。奇怪的是,用main运行它我没有问题。你能用你的最终解决方案为这个线程添加一个答案吗,这对以后跟踪它会很好。谢谢