App Service
Erstellung App Service Plan
Erstellen Sie einen “App Service Plan”:

Wählen Sie beim Erstellen “Windows” als “Operating System” aus.
Pricing Tier

Empfehlung: Der “Premium V3 P1V3”-Plan ist auch für grössere Installation geeignet. Grundsätzlich wären aber auch günstigere Pläne für den Einstieg möglich.
Erstellung Web App
Nach der Erstellung des “App Service Plan” erstellen Sie eine “Web App”.
Wir empfehlen Ihnen die folgenden Einstellungen:
- Wählen Sie einen beliebigen Namen aus - in der Regel wird ein alternativer DNS Eintrag erstellt, welcher für den Benutzern kommuniziert wird.
- Wählen Sie bei Publish die Option Code.
- Wählen Sie bei Runtime stack die Option .NET 10 (LTS).
- Wählen Sie den eben erstellen Windows Plan aus.

Konfiguration Web App
Applikationseinstellungen
Hinterlegen Sie diese drei “Application Settings”:
| Name | Wert |
|---|---|
| PrimeDocs_Config_URL | https://[Storage-Account-Name].blob.core.windows.net/primedocs-customer/{FILENAME} |
| SCM_POST_DEPLOYMENT_ACTIONS_PATH | c:\home\site\wwwroot |
| WEBSITE_LOAD_USER_PROFILE | 1 |
Beim Eintrag PrimeDocs_Config_URL nehmen Sie den Storage Account Namen aus diesem Schritt: Storage Account.
Beispiel Eintrag: https://primedocscustomer.blob.core.windows.net/primedocs-customer/{FILENAME}
Der Platzhalter {FILENAME} steht für den Dateinamen der hochgeladenen primedocs.config im Container primedocs-customer (siehe Konfiguration abschliessen). Er ist durch den tatsächlichen Dateinamen zu ersetzen.
Always On - (Web Jobs Ausführung)
primedocs setzt auf die Azure WebJobs um z.B. Benutzerdaten im Hintergrund zu synchronisieren. Die Ausführung geschieht hierbei über ein CRON Task, welcher in der Nacht läuft.
Diese Funktion kann nur ausgeführt werden, wenn der App Service läuft. Hierfür ist die Option “Always On” zwingend erforderlich.
Plattform (64-Bit)
Die Plattform des App Service auf 64-Bit einstellen: Configuration → General settings → Platform → 64 Bit.
Die primedocs-Serverapplikationen laufen ausschliesslich als 64-Bit-Prozess. Das Server-Paket enthält native Abhängigkeiten (SQL-Client, Bild- und Dokumentrendering) nur noch als x64-Variante; in einem 32-Bit-Prozess lassen sich diese nicht laden.
Path Mappings
Folgende Pfade müssen konfiguriert sein - Achten Sie darauf, dass Sie die neuen Einträge als “Applikation” anlegen:
| Virtual Path | Physical Path | Type |
|---|---|---|
/ | site\wwwroot | Application |
/service | site\wwwroot\Service | Application |
/addressservice | site\wwwroot\AddressService | Application |
/adminapp | site\wwwroot\AdminApp | Application |
/app | site\wwwroot\App | Application |
/connect | site\wwwroot\Connect | Application |
/datasourceadminapp | site\wwwroot\DataSourceAdminApp | Application |
/docs | site\wwwroot\Docs | Application |
/healthmonitor | site\wwwroot\HealthMonitor | Application |
/ids | site\wwwroot\IdS | Application |
/mcp | site\wwwroot\Mcp | Application |
/webapi | site\wwwroot\WebApi | Application |
Identity
Aktivieren Sie die Managed Identity (System Assigned):

Über “Azure role assignments” weisen Sie nun folgende Rollen hinzu:
- Wählen Sie den erstellten Storage Account von diesem Schritt aus und wählen Sie
Storage Blob Data Contributor. - Wählen Sie den erstellten Key Vault von diesem Schritt aus und weisen Sie eine Rolle zu, die das Ent- und Verschlüsseln des DataProtection-Keys erlaubt.
Nach dem Least-Privilege-Prinzip genügt für den laufenden Betrieb die Rolle Key Vault Crypto User: Sie erlaubt dem App Service das Ent- und Verschlüsseln des DataProtection-Keys, ohne Schlüssel verwalten oder löschen zu können. Die umfassendere Rolle Key Vault Administrator ist für den Betrieb nicht erforderlich.
Es sollte hinterher so aussehen:

URLs und HTTPS
Hinterlegen Sie eine beliebige Domain und ein Zertifikat mit den Mitteln, welche das Azure Portal bietet.
Die gewählte Domain muss sowohl im App Service, als auch in den Entra ID App Registrations und in der primedocs.config hinterlegt werden.