これは奇妙なものですが、ここで誰かが私にアイデアを与えることができれば幸いです。私はSession_Start
のGlobal.asax
のセッションにいくつかの値を入れています。 Session_Start
の直後に、私のベースページのOnInit
が呼び出され、それらの変数の1つを使用しようとします(Session
)。.NETセッションが動作しない
奇妙な部分が時々あり、それは動作しますが、その後、NOの変更後に私は、このエラーを与えて起動します:
"Session state can only be used when
enableSessionState
is set totrue
, either in a configuration file or in thePage
directive. Please also make sure thatSystem.Web.SessionStateModule
or a custom session state module is included in the<configuration>\<system.web>\<httpModules>
section in the application configuration."
私が見てきたとweb.config
でセッションを有効にするすべてのさまざまな方法を見つけることでした。ここではそれが今のようになります。
<system.web>
...
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20"/>
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
<httpHandlers>
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>
<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" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpHandlers>
<xhtmlConformance mode="Legacy"/>
<pages>
<!-- enableSessionState="true" autoEventWireup="true" enableViewState="true" enableViewStateMac="true" -->
<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>
<httpModules>
<!--<add name="Session" type="System.Web.SessionState.SessionStateModule"/>-->
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
</system.web>
あなたは、彼らが前に決してあったし、それが常に働いていたので、私は、特にenableSessionState="true"
と<add name="Session" type="System.Web.SessionState.SessionStateModule"/>
をコメントアウトいくつかのものを持って見ることができます。しかし、私はそれらを有効にして、どちらか一方を有効にしてみましたが、違いはありません。
これは数年間の実績がありますが、マイナーチェンジだけで、おそらく最大のものは「タイトルバー」ページを追加し、2.0から3.5にアップグレードすることです。私はenableSessionState
をページディレクティブに追加しようとしていませんでした。なぜなら、それはそのページでは機能しませんでしたからです。web.config
私はそれがページ上で直接動作する理由がわかりませんし、もうアプリケーションを汚したり、セッションを有効にしようと無駄にしています。
誰もが他に何か考えがありますか?
おかげで、 ジェフ
IIS 6またはIIS 7でこれを実行していますか? – marcc
ローカルIIS6、テスト&プロダクションIIS7。 –
これはIIS6とIIS7の両方で失敗しますか? – Kev