2009-06-25 23 views
1

これは奇妙なものですが、ここで誰かが私にアイデアを与えることができれば幸いです。私はSession_StartGlobal.asaxのセッションにいくつかの値を入れています。 Session_Startの直後に、私のベースページのOnInitが呼び出され、それらの変数の1つを使用しようとします(Session)。.NETセッションが動作しない

奇妙な部分が時々あり、それは動作しますが、その後、NOの変更後に私は、このエラーを与えて起動します:

"Session state can only be used when enableSessionState is set to true , either in a configuration file or in the Page directive. Please also make sure that System.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私はそれがページ上で直接動作する理由がわかりませんし、もうアプリケーションを汚したり、セッションを有効にしようと無駄にしています。

誰もが他に何か考えがありますか?

おかげで、 ジェフ

+0

IIS 6またはIIS 7でこれを実行していますか? – marcc

+0

ローカルIIS6、テスト&プロダクションIIS7。 –

+0

これはIIS6とIIS7の両方で失敗しますか? – Kev

答えて

6

BREAKPOINTS!

基本ページ、メインページ、Session_Start、OnInitのコンストラクタメソッドにブレークポイントを設定しました。同僚がデバッガ内のすべてのブレークポイントを削除し、問題が消えました!

+0

LOL ...木の木を見ることができません:)喜んでそれを整理しました。 – Kev

+0

信じられないほど、同じ問題がありました。 –

0

可変インスタンシエーションとページロードでいくつかのセッション値を設定する際に、同じことがブレークポイントで発生します。 Windows 7/VS2010の実行ブレークポイントを無効にすると、セッション状態を読み込むことができます。

関連する問題