Laden...

[gelöst] MVC: Anscheinend Problem mit dem Routing auf IIS 6.0

Erstellt von Michbeck1983 vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.148 Views
Michbeck1983 Themenstarter:in
239 Beiträge seit 2008
vor 14 Jahren
[gelöst] MVC: Anscheinend Problem mit dem Routing auf IIS 6.0

Hallo,

ich habe eine Webanwendung mit dem ASP.Net MVC 1.0-Framework erstellt und diese auf unserem Webserver veröffentlicht. Auf diesem läuft ein IIS 6.0. Wie schon in einigen Blogs und auch auf der offiziellen Seite zu lesen ist (Using ASP.NET MVC with Different Versions of IIS : The Official Microsoft ASP.NET Site), habe ich Anpassungen vorgenommen, damit das Routing auch funktioniert. Ich habe die Wildcard Script Map-Lösung benutzt.

Mein Problem ist nun folgendes: Starte ich meine Anwendung über "MeinWebserver/MeineAnwendung/Home", wird im Browser automatisch eine seltsame Zeichenkette angefügt: "MeinWebserver/MeineAnwendung/(S(pkpwizf4bpe4mx45oef5sze0))/Home". Das alleine wäre ja noch kein Problem, da das meiste auch funktioniert (ich habe eine Tabelle mit Paging, der Aufruf der einzelnen Seite meiner Tabelle funktioniert einwandfrei).

Was nicht funktioniert, sind sämtliche CRUD-Operationen (wobei ich das Create weggelassen habe) auf der Datenbank. Wenn ich also einen Beitrag editieren will und dazu die Edit-View aufrufe und dort neue Werte setze, passiert nach einem Klick auf einen ganz normalen submit-Button: nichts. Er springt nichtmal auf die normale Index-View zurück, sondern bleibt einfach so.

Komisch ist auch noch, dass auf meinem lokalen Rechner alles so funktioniert wie es funktionieren soll, weshalb ich ein Problem mit dem Routing vermute (und ein eventuelles Problem mit den DB-Rechten wohl ausscheidet). Aber was müsste ich sonst noch für Schritte anwenden, außer die Wildcard-Script-Map anzufügen und die Global.asax dementsprechend anzupassen?

Wäre für jeden noch so kleinen Denkanstoß dankbar.

Gruß Michbeck1983

Neulich im Computerkurs:
Mein Computer kennt Else nicht! 😁


[URL]XING-Profil[/URL]

R
115 Beiträge seit 2006
vor 14 Jahren

Solche URLs kenn ich, wenn man das Membershipsystem im Cookieless Modus fährt. Dann wird die UserID / Authentifizierungs ID die sonst im Cookie landet in der URL angehangen. Das könnte natürlich mit dem Routing Probleme geben.

Wie sind deine Membership/Forms Authentication Settings in der Web.config?

Michbeck1983 Themenstarter:in
239 Beiträge seit 2008
vor 14 Jahren

Hallo Reman,

an das Membership-System hab ich noch gar nicht gedacht. Ich habe das auch gerade eben mal getestet, je nach User unterscheidet sich die seltsame Zeichenfolge in der URL. Das wird also wohl definitiv das sein, was du angesprochen hast.

In der Web.config steht der Authentication-Mode momentan noch auf Forms, wobei auf die Standard-Login-Seite verwiesen wird (die ich aber im Projekt rausgeschmissen habe weil wir keinen Login benötigen). Ich poste mal die meiner Meinung nach relevanten Teile der Web.Config:


<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
<membership>
  <providers>
    <clear />
      <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" applicationName="/" />
  </providers>
</membership>
<profile>
  <providers>
    <clear />
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" applicationName="/" />
  </providers>
</profile>
<roleManager enabled="false">
  <providers>
    <clear />
    <add connectionStringName="ApplicationServices" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    <add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </providers>
</roleManager>

Da mein Wissen über Authentifizierung in ASP.Net noch sehr lückenhaft ist: muss ich den Authentification-Mode auf "None" setzen?

Edit: Also das reine setzen auf <authentication mode="None"> und das herauslöschen des <forms>-Knotens hat schonmal nichts gebracht...

Gruß Michbeck1983

Neulich im Computerkurs:
Mein Computer kennt Else nicht! 😁


[URL]XING-Profil[/URL]

Michbeck1983 Themenstarter:in
239 Beiträge seit 2008
vor 14 Jahren

So,

nach ein paar weiteren Versuchen komme ich zu folgenden Erkenntnissen:

  1. Die Idee mit der Authentification scheint gar nicht mal schlecht zu sein. Die Zeichenfolge unterscheidet sich je nach Nutzer, der die Anwendung aufruft. Sie erscheint immer nach der Root-URL, also "MeinWebserver/MeineAnwendung/xyz/Home", "MeinWebserver/MeineAnwendung/xyz/Home/Edit".

  2. Authentification-Mode "None" zu setzen bringt nichts.

  3. Die Zeichenfolge erscheint nicht auf dem lokalen Rechner und dem hierauf laufenden Cassini-Server.

Ich vermute jetzt einen Zusammenhang zwischen dem Authentification und der IIS-Konfiguration...

Gruß Michbeck1983

Neulich im Computerkurs:
Mein Computer kennt Else nicht! 😁


[URL]XING-Profil[/URL]

Michbeck1983 Themenstarter:in
239 Beiträge seit 2008
vor 14 Jahren

Hallo,

es hat sich jetzt erledigt. Ich habe im <system.web>-Abschnitt folgende Zeile eingefügt

<sessionState mode="InProc" cookieless="UseCookies" timeout="240" />

und schon geht alles. Danke für die Hilfe.

Gruß Michbeck1983

Neulich im Computerkurs:
Mein Computer kennt Else nicht! 😁


[URL]XING-Profil[/URL]