none
[IIS 10 auf Windows Server 2019 Essentials] Keine Verbindung zu WebDeploy RRS feed

Antworten

  • Na klar doch.

    Im IIS richtest du ganz normal über die grafische Konsole eine neue Anwendung ein.
    Dabei verweist du auf ein Verzeichnis deiner Wahl.
    Ich habe mir da z.B. ein "D:\WWW" eingerichtet und unterhalb dessen mache ich meine Apps.
    Also "D:\WWW\MyApp" ist das Anwendungsverzeichnis.
    Nun deployst du per VS in ein Verzeichnis "xxx\MyApp".
    Dort werden alle Objekte, Verzeichnisse usw. deines Projektes erstellt.
    Nun kann ich eine "MyApp.zip" erstellen, die das MyApp-Verzeichnis enthält.
    Diese Zip verteile ich nun an die Server in das WWW-Verzeichnis.
    Beim Entpacken wird nun allels in das "D:WWW\MyApp" entpackt.
    Nun bringst du aber dein Bin-Verzeichnis mit allen DLL's auch von Drittanbietern mit.
    Beim 1. Mal tuts nicht weh, im Gegensatz zur landläufigen Meinung;-).
    IIS kompiliert die DLL's des Bin's ins .Net-Cache.

    Nun machst du ein Update in deiner IDE mit neuen Versionen deiner Drittsoftware oder generierst auch neue Versionen deiner eigenen DLL's.
    Um Konflikte zu vermeiden, nennst du die normalerweise MeineApp.1.5.dll, beim nächsten Mal MeineApp.1.6.dll.
    Durch die Zip-Kopie hast du nun aber im Ziel beide DLL's, da du beim Unzip ja nur überschreibst.
    Also gib die Anweisung, dass das "D:\WWW\MyApp\Bin" zu löschen ist, da du ja einen komplett neuen Bin-Ordner mitlieferst.
    Löscht du nämlich nicht, mecker der IIS dann zu Laufzeit rum, weil er nun nicht weiß, welche DLL denn nun die richtige ist, da du ja nur z.B "Var x = New MyAppClass();" kodierst und der IIS-Prozess (das ist der Pool-Prozess) alle DLL's lädt, die im Bin-Verzeichnis stehen.

    • Als Antwort markiert saigkill0 Sonntag, 17. März 2019 18:56
    Sonntag, 17. März 2019 18:25

Alle Antworten

  • Ggf. noch hier:

    https://docs.microsoft.com/de-de/aspnet/web-forms/overview/deployment/configuring-server-environments-for-web-deployment/configuring-a-web-server-for-web-deploy-publishing-web-deploy-handler

    Meist ist da noch die Firewall dazwischen. Welcher Port da wieder freigeschaltet werden muss, must du mal suchen.

    Da ich nicht zu jedem Zielrechner einen Zugang habe, deploye ich einfach in ein Verzeichis und zippe dies. Auf dem Zielserver reicht dann einfach Unzip für den Update oder die Neuinstallation.
    I.d.R. empfehle ich dabei immer das Löschen des BIN-Verzeichnisses, damit es nicht zu Versionskonflikten von Drittsoftware kommt (Webcontrols o.ä.).

    Das geht flott in wenigen Sekunden und ist sicher.


    Sonntag, 17. März 2019 13:15
  • Da ich nicht zu jedem Zielrechner einen Zugang habe, deploye ich einfach in ein Verzeichis und zippe dies. Auf dem Zielserver reicht dann einfach Unzip für den Update oder die Neuinstallation.

    I.d.R. empfehle ich dabei immer das Löschen des BIN-Verzeichnisses, damit es nicht zu Versionskonflikten von Drittsoftware kommt (Webcontrols o.ä.)


    Vielen Dank für deine Ideen. Auf ein lokales deployen bin ich nicht gekommen. Reicht es einfach den Inhalt dieses Verzeichnisses in das Anwendungsverzeichnis unter inetpub zu kopieren? Oder erwartet IIS ein Unterverzeichnis?

    Das mit dem BIN Verzeichnis habe ich auch noch nicht ganz verstanden. Wird dies nicht zur Ausführung benötigt?

    Gruß Sascha


    Sincerly yours Sascha

    Sonntag, 17. März 2019 17:25
  • Na klar doch.

    Im IIS richtest du ganz normal über die grafische Konsole eine neue Anwendung ein.
    Dabei verweist du auf ein Verzeichnis deiner Wahl.
    Ich habe mir da z.B. ein "D:\WWW" eingerichtet und unterhalb dessen mache ich meine Apps.
    Also "D:\WWW\MyApp" ist das Anwendungsverzeichnis.
    Nun deployst du per VS in ein Verzeichnis "xxx\MyApp".
    Dort werden alle Objekte, Verzeichnisse usw. deines Projektes erstellt.
    Nun kann ich eine "MyApp.zip" erstellen, die das MyApp-Verzeichnis enthält.
    Diese Zip verteile ich nun an die Server in das WWW-Verzeichnis.
    Beim Entpacken wird nun allels in das "D:WWW\MyApp" entpackt.
    Nun bringst du aber dein Bin-Verzeichnis mit allen DLL's auch von Drittanbietern mit.
    Beim 1. Mal tuts nicht weh, im Gegensatz zur landläufigen Meinung;-).
    IIS kompiliert die DLL's des Bin's ins .Net-Cache.

    Nun machst du ein Update in deiner IDE mit neuen Versionen deiner Drittsoftware oder generierst auch neue Versionen deiner eigenen DLL's.
    Um Konflikte zu vermeiden, nennst du die normalerweise MeineApp.1.5.dll, beim nächsten Mal MeineApp.1.6.dll.
    Durch die Zip-Kopie hast du nun aber im Ziel beide DLL's, da du beim Unzip ja nur überschreibst.
    Also gib die Anweisung, dass das "D:\WWW\MyApp\Bin" zu löschen ist, da du ja einen komplett neuen Bin-Ordner mitlieferst.
    Löscht du nämlich nicht, mecker der IIS dann zu Laufzeit rum, weil er nun nicht weiß, welche DLL denn nun die richtige ist, da du ja nur z.B "Var x = New MyAppClass();" kodierst und der IIS-Prozess (das ist der Pool-Prozess) alle DLL's lädt, die im Bin-Verzeichnis stehen.

    • Als Antwort markiert saigkill0 Sonntag, 17. März 2019 18:56
    Sonntag, 17. März 2019 18:25
  • Ja das macht Sinn. Vielen Dank für die Erklärungen :-)

    Sincerly yours Sascha

    Sonntag, 17. März 2019 18:56