DaI*_*mTo 6 c# google-api azure google-oauth google-api-dotnet-client
尝试使用具有Google .net客户端库的服务帐户将Web应用程序部署到Azure时,它返回时出现以下错误
502 - Web服务器在充当网关或代理服务器时收到无效响应.
代码示例:
var certificate = new X509Certificate2(KeyFilePath, "notasecret", X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail) {
Scopes = new string[] { AnalyticsService.Scope.Analytics };
}.FromCertificate(certificate));
// Create the service.
AnalyticsService service = new AnalyticsService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Analytics API Sample",
});
Run Code Online (Sandbox Code Playgroud)
上面的代码在开发中运行时有效.但是,当部署到AZURE时,它会返回错误.
我花了大约2个小时来追查问题
问题与Azure处理证书的方式有关.
通过更改以下行
var certificate = new X509Certificate2(KeyFilePath, "notasecret", X509KeyStorageFlags.Exportable);
Run Code Online (Sandbox Code Playgroud)
对此
var certificate = new X509Certificate2(KeyFilePath, "notasecret", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable);
Run Code Online (Sandbox Code Playgroud)
Web应用程序和服务帐户现在可以在Azure上运行.我希望这可以帮助将来的某个人.