Das Sitzungsobjekt ist in der ASP.NET MVC 4-Webanwendung null, sobald es in IIS 7 (W 2008 R2) bereitgestellt wurde.

Ich habe eine ASP.NET MVC 4-Webanwendung (.net 4.5) entwickelt, die in Visual Studio 2012 einwandfrei ausgeführt wird. Nach der Bereitstellung auf IIS 7 unter Windows Server 2008 R2 scheint das HttpContext.Session-Objekt in meinem Controller null zu sein. Ich habe eine einfache ASP.NET MVC 4-Testanwendung erstellt, um das Problem zu veranschaulichen.

In meiner Test-App habe ich einen einfachen Home Controller

public class HomeController : Controller
{
    public ActionResult Index()
    {
          if ( HttpContext != null && HttpContext.Session != null )
          {
              HttpContext.Session[ "test" ] = "a string in session state";
              ViewBag.Info = HttpContext.Session[ "test" ];
              return View();
          }
          else
          {
              if ( HttpContext == null )
              {
                  ViewBag.Info = "beeeeuuuuu - HttpContext = null!!!";
              }
              else if ( HttpContext.Session == null )
              {
                    ViewBag.Info = "beeeeuuuuu - Session = null!!!";
              }
              return View();
          }

    }
}

Meine Index.chtml-Ansicht sieht ungefähr so ​​aus:

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>
This is a simple test
<p>@ViewBag.Info</p>

Wenn ich die Anwendung ausführe, erhalte ich das, was ich erwartet habe:

Index
This is a simple test 
a string in session state

Nachdem ich die Anwendung auf dem Webserver bereitgestellt habe, wird auf der Website die folgende Seite angezeigt, die angibt, dass das Sitzungsobjekt null ist:

Index
This is a simple test 
beeeeuuuuu - Session = null!!!

Die Webanwendung wird auf der Standardwebsite bereitgestellt, die unter dem ASP.NET v4.0-Anwendungspool (integrierte Pipeline) ausgeführt wird.

Ich habe ASP.NET bereits mit aspnet_regiis -ir auf dem Server neu installiert, aber das hat nicht geholfen. Der Sitzungsstatus ist auf dem ISS-Server aktiviert (In Proc). Ich hoffe, dass mir hier jemand weiterhelfen kann, denn ich versuche dies schon seit geraumer Zeit zu lösen.

Vielen Dank im Voraus und freundliche Grüße.

UPDATE: Ich habe auch einen ASP.NET MVC 4-Build mit .NET 4.0 anstelle von 4.5 getestet, und das hat das gleiche Problem. Ich habe auch eine ASP.NET-Webseiten-App (.NET 4.0) bereitgestellt und das funktioniert einwandfrei (Die HttpContext.Current.Session ist im Code dahinter nicht null).

UPDATE II: Ich habe auch versucht, den Sitzungsstatus in einer Datenbank zu speichern, die auf meinem Entwicklungscomputer einwandfrei funktioniert hat, auf dem Produktionsserver jedoch dasselbe Problem aufweist (HttpContext.Session gibt weiterhin null zurück).

Antworten auf die Frage(1)

Ihre Antwort auf die Frage