asp.net 配置session為sqlserver驗證

來源:互聯網
上載者:User

轉載:http://jopwu.blog.163.com/blog/static/73025412011112114850183/

 

SQLServer

(1).net2.0以上,建議不要使用aspnet_regsql.exe工具,而應該使用命令列,如aspnet_regsql -C "Data Source=.;Integrated Security=True" -ssadd -sstype c -d SessionStateDB
           原因是使用工具容易產生錯誤:SQL 伺服器上未安裝 ASP.NET 2.0 版工作階段狀態,因此無法使用 SQL Server。請安裝 ASP.NET 工作階段狀態 SQL Server 2.0 版或更高版本。 此時的設定檔應該是如下格式:<sessionState mode="SQLServer" allowCustomSqlDatabase="true"  sqlConnectionString="data source=VM2008;initial catalog=SessionStateDB;user id=sa;password=ioffice" timeout="30" /> (2)當機器上同時存在.net1.1和.net2.0的時候,建議使用.net2.0的指令碼。
(3)SQLServer 模式容易帶來效率上的開銷,每個頁面都會對資料庫進行讀寫2次操作。解決辦法在web.config檔案中的system.web下的page修改屬性,如<pages enableSessionState="ReadOnly"> 或者<pages enableSessionState="False">,在ioffice中一般使用readonly。同時把需要改寫session的頁面的 EnableSessionState="True",一般是登入登出頁面。

aspnet_regsql.exe 參數解析

-- 常規選項 --

-?   顯示此協助文本。

-W  嚮導模式。(如果未指定其他參數,則預設為此模式。)

-- SQL 串連選項 --

-S <server>    要使用的 SQL Server 執行個體(SQL Server 7.0 及更高版本)。

-U <login id>    用於進行身分識別驗證的 SQL Server 使用者名稱;需要 -P 選項。

-P <password>  進行身分識別驗證時使用的 SQL Server 密碼;需要 -U 選項。

-E                   使用當前 Windows 憑據進行身分識別驗證。

-C <connection string>
                  連接字串。不指定使用者名稱、密碼和伺服器名稱,而是指定 SQL Server
                  連接字串。該字串不得包含資料庫名稱,除非另行指定。

-sqlexportonly <filename>
                  產生用於添加或移除指定的功能、但不執行實際操作的 SQL 指令檔。可與以下選項一起使用: -A、-R、-ssadd 和 -ssremove。

-- 應用程式服務選項 --

-A all|m|r|p|c|w  添加對某個功能的支援。可同時指定多個值。例如:

-A mp -A m -A p

all: 所有功能 m: 成員資格 r: 角色管理器 p: 設定檔
c: 個人化 w: SQL Web 事件提供者

-R all|m|r|p|c|w  移除對一個功能的支援。可同時指定多個值。例如:

-R mp -R m -R p

all : 所有功能以及由這些功能共用的所有公用表和預存程序 m: 成員資格
r: 角色管理器 p: 設定檔 c: 個人化 w: SQL Web 事件提供者

-d <database> 用於應用程式服務的資料庫名稱。如果未指定任何資料庫名稱,則使用預設資料庫“aspnetdb”。

-Q   安靜模式;移除功能時不顯示確認對話方塊。

-- SQL 緩衝依賴項選項(用於 SQL 7.0 和 2000) --

-d <database>     用於 SQL 7.0 和 SQL 2000 中的 SQL 緩衝依賴項的資料庫名稱。也可以改為選擇使用帶有 -C 選項的連接字串指定該資料庫。(必需)

-ed  為 SQL 緩衝依賴項啟用資料庫。

-dd  為 SQL 緩衝依賴項禁用資料庫。

-et  為 SQL 緩衝依賴項啟用表。需要 -t 選項。

-dt  為 SQL 緩衝依賴項禁用表。需要 -t 選項。

-t <table>  要為 SQL 緩衝依賴項啟用或禁用的表的名稱。需要 -et 或 -dt 選項。

-lt  列出為 SQL 緩衝依賴項啟用的所有表。

-- 工作階段狀態選項 --

-ssadd   添加對 SQLServer 模式工作階段狀態的支援。

-ssremove   移除對 SQLServer 模式工作階段狀態的支援。

-sstype t|p|c  工作階段狀態支援的類型:

           t: 臨時。工作階段狀態資料存放區在“tempdb”資料庫中。用於管理會話的預存程序安裝在“ASPState”資料庫中。如果重新啟動            SQL,則不保持資料。(預設)

            p: 保持。工作階段狀態資料和預存程序都儲存在“ASPState”資料庫中。

            c: 自訂。工作階段狀態資料和預存程序都儲存在自訂資料庫中。必須指定該資料庫的名稱。

-d <database>     -sstype 為“c”時使用的自訂資料庫的名稱。

總結:使用Sqlserver模式儲存Session:即在命令列中輸入C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
aspnet_regsql.exe -C "Data Source=.;Integrated Security=True" -ssadd -sstype p

即可建立ASPState資料庫儲存Session狀態。

 

以下內容在2013年的蘭州監測項目中用到:

配置在hazelz資料庫上

 

工具路徑:  C:\Windows\Microsoft.NET\Framework\v4.0.30319

aspnet_regsql.exe -C "Data Source=SDWM-20130311QK\SQLEXPRESS;Integrated security=true" -ssadd -sstype c -d "hazelz"

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.