Beim Bereitstellen von ASP.NET in der Windows Azure-Cloud gibt die Anwendung einen Fehler aus, wenn sie in der Cloud ausgeführt wird

Ich versuche, eine ASP.NET-Anwendung in der Windows Azure-Cloud bereitzustellen. Ich verwende Google API für einen der Aufrufe in der Anwendung. Wenn ich das mache, erhalte ich folgende Fehlermeldung:

System.UnauthorizedAccessException: Der Zugriff auf den Pfad "Google.Apis.Auth" wird verweigert. "

ASP.NET ist nicht berechtigt, auf die angeforderte Ressource zuzugreifen. Erwägen Sie, der ASP.NET-Anforderungsidentität Zugriffsrechte auf die Ressource zu gewähren. ASP.NET verfügt über eine Basisprozessidentität (normalerweise {MACHINE} \ ASPNET unter IIS 5 oder Network Service unter IIS 6 und IIS 7 sowie die konfigurierte Anwendungspoolidentität unter IIS 7.5), die verwendet wird, wenn die Anwendung keine Identität annimmt. Wenn sich die Anwendung als Benutzer ausgibt, ist die Identität der anonyme Benutzer (normalerweise IUSR_MACHINENAME) oder der authentifizierte Anforderungsbenutzer. "

Um ASP.NET-Zugriff auf eine Datei zu gewähren, klicken Sie mit der rechten Maustaste auf die Datei im Datei-Explorer, wählen Sie "Eigenschaften" und wählen Sie die Registerkarte "Sicherheit". Klicken Sie auf "Hinzufügen", um den entsprechenden Benutzer oder die entsprechende Gruppe hinzuzufügen. Markieren Sie das ASP.NET-Konto und aktivieren Sie die Kontrollkästchen für den gewünschten Zugriff. "

Ich habe versucht, dies zu untersuchen, aber in allen Vorschlägen geht es um das Ändern der IIS-Servereinstellungen, auf die ich meines Erachtens keinen Zugriff habe, da diese in der Cloud ausgeführt werden. Kann jemand helfen?

BEARBEITEN: Hier ist der Code für die Funktion, die den Fehler ausgibt:

 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`

Antworten auf die Frage(3)

Ihre Antwort auf die Frage