ASP.Net der Sitzungszustand nicht aktiviert ist, richtig
Ich bin mit Mühe Sitzung Stand ordnungsgemäß in meinem ASP.Net -Anwendung. Ich habe EnableSessionState="true"
alle meine <%@ Page %>
Richtlinien, aber ich Schaffe es immer noch ausgestellt bekommen eine andere Session-ID auf jeder Seite.
Ich bin mit einem Master-Seite, die ich kann nicht einen Weg finden, geben Sie EnableSessionState für (ich nehme an, wenn die Seite, die es hat Sitzungszustand dann macht es?)
Ich habe den <sessionState>
element in meinem Web.config verwenden InProc-session-Status mit cookies, aber das scheint keine Wirkung haben - ich bin auf dem IIS 7 ausgeführt, so würde ich erwarten, dass die <system.web>
Abschnitt, um ignoriert werden zu Gunsten der <system.webServer>
Abschnitt, und es scheint nicht, um eine entsprechende config-element für den Sitzungsstatus in diesem (oder es nicht offensichtlich ist).
Ich habe versucht, googeln für Sachen auf dieser, aber ich kann nicht scheinen, etwas zu finden, die genau erklärt, was ich tun müssen, um den Sitzungsstatus aktiviert über meine gesamte Anwendung und funktioniert ordnungsgemäß. Irgendwelche Ideen, jedermann?
Meine Web.config-Datei ist als unten, und ich kann nach weiteren details, falls erforderlich.
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
<appSettings>
<add key="DBServer" value="localhost"/>
<add key="DBName" value="bbcdemo"/>
<add key="DBUser" value="example"/>
<add key="DBPassword" value="password"/>
<add key="DemoEndpoint" value="http://nottm.ecs.soton.ac.uk/BBCDemo/sparql/"/>
<add key="/BBCDemo/sparql/" value=""/>
<add key="LoadMode" value="PreloadAllAsync" />
<add key="DefaultQueryFile" value="~/App_Data/default.rq"/>
<add key="Stylesheet" value="/BBCDemo/bbcdemo.css"/>
<add key="RewriteRuleFind1" value="^.*programmes/([A-Za-z0-9]+)$"/>
<add key="RewriteRuleReplace1" value="http://www.bbc.co.uk/programmes/$1#programme"/>
</appSettings>
<connectionStrings/>
<system.web>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<compilation debug="true">
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<!--
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
<authentication mode="Windows"/>
<!--
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</controls>
</pages>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
<sessionState mode="InProc" timeout="20" cookieless="UseCookies" />
</system.web>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>
</system.codedom>
<!--
The system.webServer section is required for running ASP.NET AJAX under Internet
Information Services 7.0. It is not necessary for previous version of IIS.
-->
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<remove name="ScriptModule"/>
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<remove name="ScriptHandlerFactory"/>
<remove name="ScriptHandlerFactoryAppServices"/>
<remove name="ScriptResource"/>
<remove name="SPARQLHandler"/>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="SPARQLHandler" verb="*" path="sparql/" type="VDS.RDF.Web.SPARQLHandler"/>
<add name="ResourceHandler" verb="*" path="programmes/*" type="VDS.RDF.Web.SQLResourceHandler"/>
</handlers>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Bevor jemand meckert bei mir für die Speicherung von DB-Einstellungen in AppSettings ich darauf hinweisen, dass in der Produktion würde ich das verschlüsseln der <appSettings>
Abschnitt und dass der Datenbank-account nur benutzt hat (und braucht) nur-lese-Privilegien auf der Datenbank.
InformationsquelleAutor RobV | 2009-10-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einstellung EnableSessionState=true nicht wirklich viel erreichen, es ist auf der gesamten Anwendung standardmäßig. Um sicherzustellen, dass Ihre IIS7 Konfiguration richtig ist, können Sie versuchen, ausführen des folgenden Befehl:
Wenn Sie sehen, eine neue SessionID auf jeder Seite, es könnte einfach sein, dass dein client nicht die Speicherung/Weiterleitung der session-cookie (möglicherweise aufgrund von Sicherheits-Beschränkungen der browser). Überprüfen Sie zuerst, dass Sie tatsächlich eine Vorstellung der session-cookie, und dass alle Anforderungen bedient, die aus der gleichen Domäne.
Um sicherzustellen, dass es ist nicht ein cookie-Problem, Sie wechseln kann session state verwenden, cookieless-Modus, um zu sehen, wenn die richtige Sitzung geladen, auf nachfolgende Anforderungen:
InformationsquelleAutor Nariman
Ich war die überprüfung der session state Parameter aus der Web.Config. Ich glaube, es ist ein typo-Fehler. Bitte überprüfen Sie die web -.config erneut und testen.....
In der SessionState tag, die cookieless Attribut akzeptiert nur den Wert von "true" oder "false", aber Ihr web.config zeigt wie "UseCookies"
Bitte setzen Sie den Wert von cookieless auf false oder true und versuchen Sie es erneut.. Hoffe das das Problem lösen wird....
InformationsquelleAutor Rasik Jain