Files
Ai/TrafagSalesExporter/docs/DEPLOYMENT_IIS_HANDOFF_2026-05-19.md
T
2026-05-19 15:37:25 +02:00

5.1 KiB

Deployment / IIS Handoff 2026-05-19

Ziel

TrafagSalesExporter bleibt das fuehrende Projekt, wird aber fuer den Server als ASP.NET/IIS-Webanwendung im bisherigen BiDashboard-Schema veroeffentlicht.

Das separate lokale Projekt ..\BiDashboard wird fuer die aktuelle Weiterarbeit nicht benoetigt. Die relevanten Publish-/Hosting-Einstellungen wurden in TrafagSalesExporter uebernommen.

Server / URL / Publish-Pfad

Server / DNS:

trch-webapp-bidashboard.trafagch.local
tragvapp401.trafagch.local
10.120.1.17

Publish-Share:

\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\

Wahrscheinliche Browser-URL:

https://trch-webapp-bidashboard.trafagch.local/BiDashboard/

Hinweis: Ohne /BiDashboard bzw. ueber HTTP kam lokal weiterhin 404 Microsoft-HTTPAPI/2.0. Mit https://.../BiDashboard meldete der Browser laut Test 500, was bedeutet, dass IIS die Application erreicht.

Aktueller Publish-Stand

Das Projekt TrafagSalesExporter.csproj erzeugt jetzt eine BiDashboard-Publish-Ausgabe:

BiDashboard.dll
BiDashboard.deps.json
BiDashboard.runtimeconfig.json
BiDashboard.staticwebassets.endpoints.json
web.config
wwwroot
runtimes
trafag_exporter.db
Microsoft.AspNetCore.Authentication.Negotiate.dll

Bewusst:

  • keine EXE / kein AppHost
  • UseAppHost=false
  • AssemblyName=BiDashboard
  • RootNamespace=TrafagSalesExporter
  • Microsoft.AspNetCore.Authentication.Negotiate ist enthalten wie im alten BiDashboard-Projekt
  • lokale Build-/Probe-Ordner werden vom Publish ausgeschlossen

Relevante Commits:

8d10372 Configure Trafag web publish profile
f128d35 Publish web app without apphost
e9b616f Align Trafag publish output with BiDashboard
1533570 Exclude local build artifacts from web publish
5087a7c Enable IIS publish diagnostics

Veroeffentlichen

Standard-Publish:

dotnet publish .\TrafagSalesExporter.csproj -c Release --no-restore /p:PublishProfile=FolderProfile --verbosity minimal

Das Publish-Profil liegt hier:

Properties/PublishProfiles/FolderProfile.pubxml

Diagnose-web.config

Im Repo liegt eine explizite web.config, damit IIS/ANCM Diagnoseinformationen liefern kann:

<httpErrors errorMode="Detailed" existingResponse="PassThrough" />
<aspNetCore processPath="dotnet"
            arguments=".\BiDashboard.dll"
            stdoutLogEnabled="true"
            stdoutLogFile=".\logs\stdout"
            hostingModel="inprocess" />

Der Ordner logs wurde auf dem Share angelegt:

\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\logs

Nach einem Browser-Reload mit 500 war der Ordner weiterhin leer. Das deutet auf eines der folgenden Themen:

  • App-Pool darf nicht in logs schreiben.
  • Fehler passiert auf IIS/ANCM-Ebene vor dem App-Start.
  • IIS verwendet einen anderen Physical Path als den Share-Ordner.

Rechtebefund

ACL auf dem Publish-Ordner zeigte:

IIS_IUSRS: ReadAndExecute
TRAFAGCH\koi: FullControl

Versuch, Rechte selbst zu setzen:

icacls "\\trch-webapp-bidashboard.trafagch.local\BiDashboard$" /grant "IIS_IUSRS:(OI)(CI)M" /T

Ergebnis:

Zugriff verweigert

Auch per SID fuer IIS_IUSRS wurde es abgelehnt. Wir koennen publishen und Dateien schreiben, aber keine NTFS-/Share-Rechte auf dem Server aendern.

Wahrscheinlichster aktueller Fehler

Die App startet in Program.cs sofort die Datenbankinitialisierung:

DatabaseInitializationService.InitializeAsync()
db.Database.EnsureCreatedAsync()
PRAGMA journal_mode=WAL
Schema-Wartung
SeedDefaults

SQLite schreibt bzw. aendert dabei mindestens:

trafag_exporter.db
trafag_exporter.db-shm
trafag_exporter.db-wal

Wenn der App-Pool nur Lesen/Ausfuehren hat, kann das beim Start als 500 enden.

Server-Spezialist: konkrete Bitte

Bitte auf dem Server tragvapp401 pruefen:

  1. IIS Application /BiDashboard zeigt auf genau den Ordner mit dieser Datei:
\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\web.config

oder auf den entsprechenden lokalen physischen Pfad.

  1. App-Pool-Identity ermitteln.

  2. Dieser konkreten App-Pool-Identity Modify geben auf:

Publish-Ordner
logs\
trafag_exporter.db
trafag_exporter.db-shm
trafag_exporter.db-wal

Alternativ voruebergehend IIS_IUSRS mit Modify, wenn die genaue App-Pool-Identity nicht klar ist.

  1. App-Pool neu starten.

  2. URL testen:

https://trch-webapp-bidashboard.trafagch.local/BiDashboard/
  1. Wenn weiter 500, bitte pruefen:
\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\logs

und Windows Event Viewer:

IIS AspNetCore Module V2
Application Error
.NET Runtime

Aktueller Restzustand im Git-Working-Tree

Es gibt weiterhin alte/unabhaengige lokale Dateien und geloeschte Alt-Dokumente im Working Tree. Diese wurden bewusst nicht committed:

../BiDashboard/
.tmp_tools/
Tools/FinanceProbe/.tmp_tools/
verify_probe_out*/
docs/CFO_Kurzbericht_270515_NEU.docx
docs/FINANCE_AMPEL_LAENDER_2026-05-19.xlsx
financeprobe.*.log
mainapp.*.log

Ausserdem sind mehrere alte Dateien als geloescht markiert. Nicht blind committen, bevor klar ist, ob sie wirklich entfernt werden sollen.