Auf IIS7.5 gehostete Seite ändert das Erscheinungsbild auf IIS6


1

Ich bin gerade dabei, unsere Site auf einen neuen Webserver (Server 2008 R2) umzustellen, und versuche, eine der neuen Anwendungen auf den alten Server (Server 2003) zu kopieren, damit Benutzer in der Zwischenzeit darauf zugreifen können . Das Problem, auf das ich stoße, ist, dass ich den Ordner zwar direkt auf den alten Server kopiert, die App auf dem alten Server gestartet und die ASP.NET-Version auf 4.0 festgelegt habe, damit sie mit der auf dem neuen Server verwendeten übereinstimmt Der alte Server zeigt die Seite anders an. Insbesondere das CSS-Format (im Kopf), mit dem die Schriftgröße und -art festgelegt wird, wird auf dem alten Server nicht verwendet. Auf einer anderen Seite wird ein Textbereich nicht in den auf der ASP.NET-Seite angegebenen Dimensionen angezeigt. Die Stilinformation schafft es einfach nicht in den Quellcode der resultierenden Seite.

Hier ist zum Beispiel die Codezeile in der aspx-Datei:

<td colspan="3"><asp:TextBox ID="cre_slm_comm1" runat="server" Height="156px"
    TextMode="MultiLine" Width="400px" Text='<%# Eval("cre_slm_comm1") %>' /></td>

Dies ist der resultierende Quellcode auf dem IIS6-Server:

<td colspan="3"><textarea name="FormView1$cre_slm_comm1" rows="2" cols="20"
    id="FormView1_cre_slm_comm1">Test comment. 3/1/13. br.</textarea></td>

Und die gleiche Zeile auf dem IIS7.5-Server:

<td colspan="3"><textarea name="FormView1$cre_slm_comm1" rows="2" cols="20"
    id="FormView1_cre_slm_comm1" style="height:156px;width:400px;">
    Test comment. 3/1/13. br.</textarea></td>

Irgendwelche Vorschläge, was ich tun kann, um die Art und Weise zu beheben, in der diese Server den Code nicht auf die gleiche Weise interpretieren?


Wenn es nicht auf dem alten Server verwendet wird. Wäre es nicht logisch, es zu entfernen?
Ramhound

Gehört auf serverfault.com. Versuchen Sie auch, v2 des Frameworks zu verwenden?
Ian Quigley

Ramhound: Ich verstehe deinen Kommentar nicht. Ian: Die Seite funktioniert einwandfrei mit .net 4.0 auf dem IIS7.5-Server. Es wird auch 4.0 auf dem IIS6-Server verwendet. Warum würde ein Wechsel zu v2 einen Unterschied machen?

Antworten:


2

Ändern Sie den Standortanwendungspool in IIS, um dieselbe .NET Framework-Version und -Pipeline des anderen Servers als Ziel festzulegen.

oder füge diese Zeile in web.config hinzu:

<pages controlRenderingCompatibilityVersion="3.5" />

ASP.NET 4 Breaking Changes

Asp.net passt das gerenderte HTML an die Art und Version des Browsers an. Überprüfen Sie, ob es sich nur um einen Browser handelt.

Wenn das Problem weiterhin besteht, liegt möglicherweise ein .net-Fehler vor, oder der Server 2 unterscheidet sich in der Framework-Version (einige Patches usw. usw.).

Auf jeden Fall ist es eine einfache Umgehung und eine bewährte Methode, ein Element mit einer CSS-Klasse zu gestalten.


Diese Zeile ist bereits in der web.config vorhanden, und das Framework ist 4.0 auf beiden (in OP angegeben).

@Ben wirklich seltsam ... verwenden Sie verschiedene Browser? App-Umfrage ist in der integrierten Pipeline oder klassisch?
giammin

Giammin: Nein. IE10, zwei verschiedene Registerkarten. Ich habe die Seite auf dem einen und die alte auf dem anderen Server hochgezogen. IIS7.5 sieht sowohl im integrierten als auch im klassischen Modus gleich aus (obwohl ich es mit dem integrierten Modus verwende). Der IIS6-Server interpretiert die aspx nur unterschiedlich und verliert dadurch etwas an Stil in der resultierenden Quelle. Ich bin mir jedoch nicht sicher, was das verursachen würde.

@Ben das ist ein asp.net Verhalten. Es passt das Rendering von HTML-Elementen an.
giammin

1
Es gab ein paar Probleme - es war ein einzelnes Element auf jeder der drei Seiten - und so habe ich diese Stilelemente aus den Elementattributen entfernt und sie für jedes Element einer CSS-Klasse zugewiesen. Ich bin mir nicht sicher, warum es notwendig war - anscheinend hat IIS6 diese Attributeinstellungen einfach nicht richtig in das HTML-Rendering übersetzt -, aber es funktioniert wie es ist, was eigentlich sowieso wichtig ist. Vielen Dank!
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.