0

Ich habe einen Azure App-Service und ein Azure Storage-Konto. Ich weiß, dass hinter dem App-Dienst ein Server/vm steht, aber ich habe keinen Computer explizit gestartet.Kann ich einen Laufwerksbuchstaben einer Azure Storage-Dateifreigabe von meinem Azure App-Dienst (keine VM) zuordnen

Ich versuche, Daten aus einer Access-Datenbank zu importieren, die regelmäßig in eine Dateifreigabe in meinem Speicherkonto hochgeladen wird. Ich möchte einen Azure WebJob verwenden, um die Arbeit im Hintergrund auszuführen.

Ich versuche, DAO zu verwenden, um die Daten zu lesen:

string path = @"\\server\share\folder\datbase.mdb"; 
DBEngine dbe = new DBEngine(); 
Database db = dbe.OpenDatabase(path); 
DAO.Recordset rs = db.OpenRecordset("select * from ..."); 

Dies funktioniert, wenn ich es lokal laufen, aber wenn ich versuche, es in meinem Web-Job ausführen, um eine Dateifreigabe in meinem Speicherkonto zugreifen, Es findet die Datei nicht. Ich nehme an, dies liegt daran, dass DBEngine nichts von Azure- und Azure-Kontonamen und Sicherheitsschlüsseln weiß, sie nicht sendet und Azure Storage nicht antwortet.

Also, was ich ausprobieren möchte, ist zu sehen, ob ich eine Azure Storage Fileshare auf dem Server zuordnen kann, der meinem App Service zugrunde liegt. Ich habe verschiedene Dinge ausprobiert, habe aber jedes Mal Variationen von "Zugriff verweigert" erhalten. Ich habe versucht:

  • Lauf net use T: \ name.file.core.windows.net \ azurefileshare /u: Name Schlüssel aus den App-Service-Konsolen im Azure Portal
  • Lauf net use aus ein Prozess in meinem webjob
  • WNetAddConnection2 aus meinem webjob Aufruf

Sieht aus wie der Server fest verriegelt ist. Hat jemand irgendwelche Ideen, wie ich die Dateifreigabe auf dem zugrunde liegenden Server zuordnen kann?

Vielen Dank

Antwort

0

Wie ich weiß, Azure Web-App läuft in sandbox. Wir konnten der Azure-Webanwendung keine Azure-Dateifreigabe zuordnen. Daher ist der Azure-Dateispeicher ein guter Platz, wenn Sie sich für die Azure-Webanwendung entscheiden. Aus meiner Erfahrung, gibt es unterhalb von Workarounds für Sie. Hoffe, das könnte dir ein paar Tipps geben.

1) Verwenden Sie Azure-Dateispeicher, aber wählen Sie Azure VM oder Cloud-Dienst als Host-Service.

2) Wählen Sie weiterhin die Azure Web App als Host-Service aus, schließen Sie jedoch die Access DB in die Lösung ein und laden Sie sie in die Azure Web App hoch.

3) Wählen Sie stattdessen SQL Azure als Datenbank. Hier ist the article, die uns helfen könnte, die Access-Datenbank zu SQL Azure

+0

Hallo Jambor, danke für deine Vorschläge.1) ist eine Option, ich versuche nur zu sehen, ob es eine Möglichkeit gibt, eine VM neben meinem App Service zu vermeiden. Danke noch einmal. – Beau

0

zu migrieren Am Ende, wie Jambor zu Recht sagt, die App Service VM ist fest verschlossen.

Es stellt sich jedoch heraus, dass die App Service VM mit lokalem temporärem Speicher für die Verwendung der verschiedenen Komponenten geliefert wird, die auf der VM ausgeführt werden.

Dies ist bei D: \ local \ Temp \ und kann von einem Web-Job geschrieben werden.

Interessanterweise ist dies ein logischer Ordner auf einer anderen Freigabe/einem anderen Laufwerk von D: \ local und die Größe dieses zusätzlichen Speichers hängt vom Umfang des App Service ab.