none
IIS 8.5: Umstellung von ASP.NET 2.0 auf 4.0, aspx-Seite bleibt leer RRS feed

  • Frage

  • Hallo zusammen,
    der IIS bringt mich zur Verzweiflung.

    Auf meinem Entwicklungsrechner habe ich die Website bereits auf .NET 4.0 umgestellt.
    Also, zumindest läuft sie dort (einige Einschränkungen gibts auf anderem Gebiet).

    Nun habe ich auf den Server das Web-Verzeichnis auf den neuen Quellcode umgestellt und auch im IIS auf .NET 4.0 umgestellt.
    Wenn ich nun die Website aufrufe kommt aber nur eine leere Seite, ohne Fehlermeldung und auch ohne Quelltext dahinter (Also wenn man im Browser auf "Quelltext anzeigen" klickt).

    Eine normale html-Seite funktioniert.

    Wenn ich sie lokal auf dem Server aufrufe, über "localhost/<Verzeichnis>", dann kommt folgender Fehler:

    Server Error in '/' Application.

    Configuration Error
    Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

    Parser Error Message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.

    Source Error:

    Line 29: </buildProviders>
    Line 30: </compilation>
    Line 31: <authentication mode="Windows" />
    Line 32: <httpHandlers>
    Line 33: <add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />

    Source File: C:\inetpub\wwwroot\fm.gis-vs.de\web.config Line: 31
    Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.3282.0

    Hat da irgend jemand eine Idee?

    Grüsse
    Helmut

    Samstag, 29. Dezember 2018 14:06

Alle Antworten

  • Hi Helmut,
    der Ausschrift sagt, dass das virtuelle Verzeichnis nicht als Verzeichnis für ASP.Net-Anwendungen konfiguriert ist. Hast Du das Verzeichnis auch entsprechend konfiguriert?

    Außerdem hast Du in der Web.config vermerkt, dass Bibliotheken von Crystal Reports benötigt werden. Hast Du diese Bibliotheken auch in der für das FW4 erforderlichen Version registriert?


    --
    Viele Grüsse
    Peter Fleischer (ehem. MVP für Developer Technologies)
    Meine Homepage mit Tipps und Tricks

    Samstag, 29. Dezember 2018 14:21
  • Hi Peter,

    vielen Dank für die Antwort.
    Cristal Reports ist eigentlich drin. Auf meinem Entwicklungsrechner funktioniert es. Leider nur eingeschränkt, und ich bin noch bei der Fehlersuche.
    Aber es funktioniert dort mehr, als es in der vorhergehenden .NET 2.0 Version tat. (Das vorerst nur nebenbei)

    Aber wie aktiviere ich dann das ASPX auf der Website?

    Zuvor, in der .NET 2.0 Konfiguration ging es ja auch.
    Und die Unterschiede im Verzeichnis der Website sind auch nicht so gravierend. Hauptsächlich die "web.config".

    Bis zu WinServer 2003 war ja alles noch ganz verständlich.
    Hier aber verzweifle ich schon seit einem Jahr, wo ich versuche diese Website auf Server 2012 zum Laufen zu bringen.

    Grüsse
    Helmut


    • Bearbeitet Helmut19 Samstag, 29. Dezember 2018 15:30
    Samstag, 29. Dezember 2018 14:32
  • Ich bekomme das einfach nicht hin.

    Es scheint aber so zu sein, dass fast alles, was in der web.config steht über den IIS-Manager eingegeben werden kann.
    Ich stelle mal hier meine web.config rein. Vielleicht kann ja dann jemand meinen Fehler erkennen.

    Auf meinem Entwicklungsrechner funktioniert fast alles, ausser der Crystal Report Viewer wird nicht gefunden).
    Aber das ist hier noch nicht das Problem.
    Auf dem Produktiv Server wird schon die Startseite nicht angezeigt. Alles leer, nicht mal eine Fehlermeldung.
    Und auch kein Quelltext hinter der leeren Seite.

    PS: Ich habe hier .NET 4.5.2 angegeben, obwohl ich 4.0xxx verwende. Aber es funktioniert mit der Angabe "4.0" nicht, bzw schlechter.

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
      <configSections>
        <sectionGroup name="businessObjects">
          <sectionGroup name="crystalReports">
            <section name="rptBuildProvider" type="CrystalDecisions.Shared.RptBuildProviderHandler, CrystalDecisions.Shared, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, Custom=null" />
            <section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler" />
          </sectionGroup>
        </sectionGroup>
      </configSections>
      <appSettings>
        <add key="CrystalImageCleaner-AutoStart" value="true" />
        <add key="CrystalImageCleaner-Sleep" value="60000" />
        <add key="CrystalImageCleaner-Age" value="120000" />
      </appSettings>
      <connectionStrings />
    
      <system.web>
        <compilation debug="true" defaultLanguage="c#" explicit="true" strict="false" targetFramework="4.5.2">
          <assemblies>
            <add assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
            <add assembly="CrystalDecisions.ReportSource, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
            <add assembly="CrystalDecisions.Shared, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
            <add assembly="CrystalDecisions.Web, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
            <add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
          </assemblies>
          <buildProviders>
            <add extension=".rpt" type="CrystalDecisions.Web.Compilation.RptBuildProvider, CrystalDecisions.Web, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
          </buildProviders>
        </compilation>
        <authentication mode="Windows" />
        <httpHandlers>
          <add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
        </httpHandlers>
        <pages>
          <namespaces>
            <clear />
            <add namespace="System" />
            <add namespace="System.Collections" />
            <add namespace="System.Collections.Generic" />
            <add namespace="System.Collections.Specialized" />
            <add namespace="System.Configuration" />
            <add namespace="System.Text" />
            <add namespace="System.Text.RegularExpressions" />
            <add namespace="System.Web" />
            <add namespace="System.Web.Caching" />
            <add namespace="System.Web.SessionState" />
            <add namespace="System.Web.Security" />
            <add namespace="System.Web.Profile" />
            <add namespace="System.Web.UI" />
            <add namespace="System.Web.UI.WebControls" />
            <add namespace="System.Web.UI.WebControls.WebParts" />
            <add namespace="System.Web.UI.HtmlControls" />
          </namespaces>
        </pages>
      </system.web>
    
      <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <handlers>
          <add verb="GET" path="CrystalImageHandler.aspx" name="CrystalImageHandler.aspx_GET" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode" />
        </handlers>
      </system.webServer>
      
      <businessObjects>
        <crystalReports>
          <rptBuildProvider>
            <add embedRptInResource="true" />
          </rptBuildProvider>
          <crystalReportViewer>
            <add key="ResourceUri" value="/crystalreportviewers13"/>
          </crystalReportViewer>
        </crystalReports>
      </businessObjects>
    </configuration>
    

    Sonntag, 30. Dezember 2018 12:48
  • Hi Helmut,
    hast Du den IIS auch richtig eingerichtet? Sie dazu Configure an ASP.NET Website on IIS. Wenn da die Moduln fehlen, dann geht nix los.

    Zuerst solltest Du aber auch mal prüfen, ob überhaupt etwas vom IIS geliefert wird: einfache html-Seite ins virtuelle Verzeichnis legen und diese im Browser anzeigen lassen.


    --
    Viele Grüsse
    Peter Fleischer (ehem. MVP für Developer Technologies)
    Meine Homepage mit Tipps und Tricks

    Sonntag, 30. Dezember 2018 13:37
  • Ja, einfaches html geht. Und wenn ich die Website nicht üner ihre Domain, sondern die ip mit pfad aufrufe, dann kommt der snfangs beschriebene Fehler. Ich dachte such, dass die Module in der Website vorhanden Sind. Muss das aber späzer nochmal prüfen. a
    • Bearbeitet Helmut19 Sonntag, 30. Dezember 2018 15:51
    Sonntag, 30. Dezember 2018 15:41
  • Hi Helmut,
    wenn einfaches html funktioniert, dann ist erst einmal der Zugang prinzipiell möglich.

    Wenn der Zugriff mit Hostheader funktioniert, mit IP-Adresse aber nicht, dann ist ggf. im IIS die Bindung so eingestellt, dass der IIS nur bei bestimmten Anfragen reagiert.


    --
    Viele Grüsse
    Peter Fleischer (ehem. MVP für Developer Technologies)
    Meine Homepage mit Tipps und Tricks

    Sonntag, 30. Dezember 2018 17:30
  • Das steht in den Modulen:

    Die Bindings habe ich nicht verändert.
    Da ist einfach der IP der Hostname zugeordnet, wie bfürs Web üblich.

    Grüsse

    Helmut

    • Bearbeitet Helmut19 Sonntag, 30. Dezember 2018 17:48
    Sonntag, 30. Dezember 2018 17:47
  • Hi Helmut,
    die Modules sind erst einmal uninteressant.

    1. Wie hast Du das Projekt auf dem Server ausgerollt? Eine Möglichkeit wäre ein Publish in ein Web Deploy Package in ein lokales Verzeichnis. Die zip-Datei kannst Du dann auf dem Zielrechner im physischen Verzeichnis entfalten, auf welches der virtuelle Pfad zeigt.

    2. Wie sieht die Bindung aus?

    3. Mit welcher URL rufst Du die Seite (WebForm) auf?

    4. Was steht im Verzeichnis, auf welches der virtuelle Pfad zeigt?


    --
    Viele Grüsse
    Peter Fleischer (ehem. MVP für Developer Technologies)
    Meine Homepage mit Tipps und Tricks

    Sonntag, 30. Dezember 2018 20:11
  • Hi Peter, Die Website bestand ja schon. Also habe ich einfach das ganze verzeichnis von meinem Rechner ins wwwroot des Servers kopiert. Dann habe ich den Webserver beendet und das neue Verzeichnis in das bestehende umbenannt. Unter den Applications im Webserver habe ich dann durch copy paste die Pfade für .net 4.0 ergänzt. Diese Pfade wurden mir nicht bom Sytem vorgegeben, wo ich eine Auswahl hätte treffen können. Ich habe slso einfach erwartet, dass diese dieselben sind, wie suf meinem Rechner. Aber uch habe keine Ahnung, wie diese ganzen Angaben in meinen Eebserver gekommen dind. Also, ich habe neben dem Entwicklungs Webserver auch den richtigen bei mir installiert. Anschliessend habe ich in den applications meiner Website das.net 4.0 zugewiesen. Ich habe versucht alles auf dem Server so einzustellen, wie es auf meinem Rechner ist. S
    Sonntag, 30. Dezember 2018 20:31
  • Hi Helmut,
    einfaches Kopieren und Umbenennen wird nicht funktionieren. Warum nutzt Du nicht einen stabilen, seriösen Weg, z.B. so:

    1. Projekt lokal testen.

    2. Projekt veröffentlichen als Web Deploy Package in einem lokales Verzeichnis. Dabei entsteht eine zip-Datei.

    3. Auf dem Zielrechner IIS vorbereiten, s. Configure an ASP.NET Website on IIS

    4. Einen virtuellen Pfad auf ein physisches Verzeichnis einschl. Bindung einrichten.

    5. Deploy Package (zip-Datei) entfalten und im physischen Verzeichnis ablegen.


    --
    Viele Grüsse
    Peter Fleischer (ehem. MVP für Developer Technologies)
    Meine Homepage mit Tipps und Tricks

    Sonntag, 30. Dezember 2018 20:47
  • Ich lese gerade, dass asp.net extra im iis installiert werden muss. Auf diese Artikel bin ich zuvor leider gar nicht gestossen. Oder habe es völlig vergessen, da ich zuletzt vor fast einem Jahr damit gearbeitet hatte.
    Sonntag, 30. Dezember 2018 21:01
  • Tja, wie das eben so ist. Dieses Verfahren des Deploiment wurde mir leider nie erklärt. Als ich noch hauptberuflich in der Webentwicklung tätig war, brauchte ich das nicht. Und mich kun mit diesen ganzen Mechanismen zu befassen, kostet rinfach viel Zeit, die ich nun natürlich wieder mit drr Fehlersuche verliere. Auch fehlt es mir an geeignetem Experimentiermöglichkeiten, wo ich such mal Fehler machen kann. Bisher war es mir so nicht möglich, nachzuvollziehen was alles bei diesen Deploiment vor sich geht. Also machte ich es nicht.
    • Bearbeitet Helmut19 Sonntag, 30. Dezember 2018 21:16
    Sonntag, 30. Dezember 2018 21:11
  • Vielen Dank Peter

    Letztlich habe ich die Website noch um Laufen gebracht.
    Es war wirklich das Fehlen der ASP.NET Installation für .NET 4.

    Dass das noch nicht gemacht war, hatte ich leider nicht bedacht.
    Ich musste noch ein paar Fehler, die durch meine Konfigurationsversuche entstanden waren, beseitigen.
    Aber die Website läuft nun zumindest so, wie auf meinem Entwicklungsrechner.

    Auch Crystal Reports macht seine Ausgabe, wenn auch der Crystal Reports Viewer noch nicht reagiert.

    Noch habe ich nicht ganz verstanden, was durch die von Dir erklärte Weise des Deployments besser wäre.
    Ich hoffe, ich habe auch noch Zeit, mich damit zu beschäftigen.
    Ein paar Funktionsprinzipien vom IIS habe ich zumindest mitbekommen.

    Aber durch ein regelgerechtes Deployment hätte es diese Probleme wohl auch gegeben.

    Vielen Dank nochmals.
    Und vor Allem einen guten Rutsch ins neue Jahr und weiterhin alles Gute für die Zukunft.

    Grüsse
    Helmut

    Montag, 31. Dezember 2018 12:02
  • Hi Helmut,
    beim Publish eine Web Deploy Package wird eine zip-Datei erstellt, die dann auf dem Ziel-Server im Dateisystem entfaltet werden kann. Das entspricht dem XCopy, welches Du bisher genutzt hast. Der Vorteil besteht darin, dass in die zip-Datei alle erforderlichen Komponenten eingeschlossen werden. Beim XCopy kannst Du dagegen etwas vergessen, so dass entweder falsche (alte) Versionen genutzt werden oder auch nur Komponenten fehlen können.

    --
    Viele Grüsse
    Peter Fleischer (ehem. MVP für Developer Technologies)
    Meine Homepage mit Tipps und Tricks

    Montag, 31. Dezember 2018 12:30