Al implementar ASP.NET en la nube de Windows Azure, la aplicación genera un error cuando se ejecuta en la nube
Estoy intentando implementar una aplicación ASP.NET en la nube de Windows Azure. Estoy usando la API de Google para una de las llamadas en la aplicación. Cuando hago esto, me sale el siguiente error:
System.UnauthorizedAccessException: se deniega el acceso a la ruta 'Google.Apis.Auth'.
ASP.NET no está autorizado para acceder al recurso solicitado. Considere conceder derechos de acceso al recurso a la identidad de solicitud ASP.NET. ASP.NET tiene una identidad de proceso base (generalmente {MACHINE} \ ASPNET en IIS 5 o Network Service en IIS 6 e IIS 7, y la identidad del grupo de aplicaciones configurado en IIS 7.5) que se usa si la aplicación no se hace pasar por la personificación. Si la aplicación se hace pasar por la identidad, la identidad será el usuario anónimo (generalmente IUSR_MACHINENAME) o el usuario autenticado de la solicitud ».
Para otorgar acceso de ASP.NET a un archivo, haga clic con el botón derecho en el archivo en el Explorador de archivos, elija "Propiedades" y seleccione la pestaña Seguridad. Haga clic en "Agregar" para agregar el usuario o grupo apropiado. Resalte la cuenta ASP.NET y marque las casillas para el acceso deseado.
Intenté investigar esto, pero todas las sugerencias hablan de cambiar la configuración del servidor IIS, a la que no creo que tenga acceso, ya que esto se está ejecutando en la nube. ¿Alguien puede ayudar?
EDITAR: aquí está el código para la función que está dando el error:
Async Function SpecialTest() As Task(Of String)
Dim credential As UserCredential
Dim clientSecretsPath As String = Server.MapPath("~/App_Data/client_secret.json")
Dim scopes As IList(Of String) = New List(Of String)()
scopes.Add(CalendarService.Scope.Calendar)
Dim stream As FileStream = New FileStream(clientSecretsPath, System.IO.FileMode.Open, System.IO.FileAccess.Read)
Using stream
credential = Await GoogleWebAuthorizationBroker.AuthorizeAsync(GoogleClientSecrets.Load(stream).Secrets, scopes, "user3", CancellationToken.None)
End Using
Dim baseInitializer = New BaseClientService.Initializer()
With baseInitializer
.HttpClientInitializer = credential
.ApplicationName = "P1"
End With
Dim service = New CalendarService(baseInitializer)
Dim Calendars = (Await service.CalendarList.List().ExecuteAsync()).Items()
Dim toReturn As String = "{""items"": ["
For Each firstCalendar As CalendarListEntry In Calendars
If firstCalendar IsNot Nothing Then
' Get all events from the first calendar.
Dim calEvents = Await service.Events.List(firstCalendar.Id).ExecuteAsync()
' DO SOMETHING
Dim items = calEvents.Items
'Return JsonConvert.SerializeObject(calEvents)
For Each ite As Google.Apis.Calendar.v3.Data.Event In items
If Not (ite.Location Is Nothing) And Not (ite.Start Is Nothing) Then
Dim tst = ite.Start.DateTime
toReturn = toReturn + " [""" + Date.Parse(ite.Start.DateTime).ToShortDateString + """" + "," + """" + ite.Location + """" + "," + """" + ite.Start.DateTime + """" + "," + """" + ite.Start.DateTime + """" + "," + """""],"
End If
Next
End If
Next
toReturn = toReturn.Substring(0, toReturn.Length - 1)
Return toReturn + "]}"
End Function`