中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁(yè) > 技術(shù)文檔 > 網(wǎng)絡(luò)編程 > [ASP.NET] Session 詳解
ASP初學(xué)者常犯的幾個(gè)錯(cuò)誤 回到列表 使用 ASP.NET 加密口令
 [ASP.NET] Session 詳解

作者:heallven 時(shí)間: 2004-05-08 文檔類型:轉(zhuǎn)載 來(lái)自:放飛技術(shù)網(wǎng)

本文僅代表作者個(gè)人觀點(diǎn),正確與否請(qǐng)讀者自行研究!

原文地址:http://www.frontfree.net/view/article_742_page1.html

閱讀本文章之前的準(zhǔn)備
  閱讀本文章前,需要讀者對(duì)以下知識(shí)有所了解。否則,閱讀過(guò)程中會(huì)在相應(yīng)的內(nèi)容上遇到不同程度的問(wèn)題。

  懂得ASP/ASP.NET編程
  了解ASP/ASP.NET的Session模型
  了解ASP.NET Web應(yīng)用程序模型
  了解ASP.NET Web應(yīng)用程序配置文件Web.config的作用、意義及使用方法
  了解Internet Information Services(以下簡(jiǎn)稱IIS)的基本使用方法
  了解如何在Microsoft SQL Server中創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)。
Session模型簡(jiǎn)介
  Session是什么呢?簡(jiǎn)單來(lái)說(shuō)就是服務(wù)器給客戶端的一個(gè)編號(hào)。當(dāng)一臺(tái)WWW服務(wù)器運(yùn)行時(shí),可能有若干個(gè)用戶瀏覽正在運(yùn)正在這臺(tái)服務(wù)器上的網(wǎng)站。當(dāng)每個(gè)用戶首次與這臺(tái)WWW服務(wù)器建立連接時(shí),他就與這個(gè)服務(wù)器建立了一個(gè)Session,同時(shí)服務(wù)器會(huì)自動(dòng)為其分配一個(gè)SessionID,用以標(biāo)識(shí)這個(gè)用戶的唯一身份。這個(gè)SessionID是由WWW服務(wù)器隨機(jī)產(chǎn)生的一個(gè)由24個(gè)字符組成的字符串,我們會(huì)在下面的實(shí)驗(yàn)中見(jiàn)到它的實(shí)際樣子。

  這個(gè)唯一的SessionID是有很大的實(shí)際意義的。當(dāng)一個(gè)用戶提交了表單時(shí),瀏覽器會(huì)將用戶的SessionID自動(dòng)附加在HTTP頭信息中,(這是瀏覽器的自動(dòng)功能,用戶不會(huì)察覺(jué)到),當(dāng)服務(wù)器處理完這個(gè)表單后,將結(jié)果返回給SessionID所對(duì)應(yīng)的用戶。試想,如果沒(méi)有SessionID,當(dāng)有兩個(gè)用戶同時(shí)進(jìn)行注冊(cè)時(shí),服務(wù)器怎樣才能知道到底是哪個(gè)用戶提交了哪個(gè)表單呢。當(dāng)然,SessionID還有很多其他的作用,我們會(huì)在后面提及到。

  除了SessionID,在每個(gè)Session中還包含很多其他信息。但是對(duì)于編寫(xiě)ASP或ASP.NET的程序與來(lái)說(shuō),最有用的還是可以通過(guò)訪問(wèn)ASP/ASP.NET的內(nèi)置Session對(duì)象,為每個(gè)用戶存儲(chǔ)各自的信息。例如我們想了解一下訪問(wèn)我們網(wǎng)站的用戶瀏覽了幾個(gè)頁(yè)面,我們可能在用戶可能訪問(wèn)到每個(gè)的頁(yè)面中加入:

<%
If Session("PageViewed") = ""Then
 Session("PageViewed") = 1
Else
 Session("PageViewed") = Session("PageViewed") + 1
End If
%>

  通過(guò)以下這句話可以讓用戶得知自己瀏覽了幾個(gè)頁(yè)面:

<%
Response.Write("You have viewed " & Session("PageViewed") & " pages")
%>

  可能有些有些讀者會(huì)問(wèn):這個(gè)看似像是數(shù)組的Session(“..”)是哪里來(lái)的?需要我定義嗎?實(shí)際上,這個(gè)Session對(duì)象是具有ASP解釋能力的的WWW服務(wù)器的內(nèi)建對(duì)象。也就是說(shuō)ASP的系統(tǒng)中已經(jīng)給你定義好了這個(gè)對(duì)象,你只需要使用就行了。其中Session(“..”)中的..就好像變量名稱,Session(“..”)=$$$中的$$$就是變量的值了。你只需要寫(xiě)上句話,在這個(gè)用戶的每個(gè)頁(yè)面中都可以訪問(wèn)..變量中的值了。

  其實(shí)ASP一共內(nèi)建了7個(gè)對(duì)象,有Session、Application、Cookie、Response、Request、Server等。在其他的服務(wù)器端腳本語(yǔ)言如JSP、PHP等中也有其類似的對(duì)象,只是叫法或者使用方法上不太一樣。

ASP Session的功能的缺陷
  目前ASP的開(kāi)發(fā)人員都正在使用Session這一強(qiáng)大的功能,但是在他們使用的過(guò)程中卻發(fā)現(xiàn)了ASP Session有以下缺陷:

  進(jìn)程依賴性:ASP Session狀態(tài)存于IIS的進(jìn)程中,也就是inetinfo.exe這個(gè)程序。所以當(dāng)inetinfo.exe進(jìn)程崩潰時(shí),這些信息也就丟失。另外,重起或者關(guān)閉IIS服務(wù)都會(huì)造成信息的丟失。
  Session狀態(tài)使用范圍的局限性:剛一個(gè)用戶從一個(gè)網(wǎng)站訪問(wèn)到另外一個(gè)網(wǎng)站時(shí),這些Session信息并不會(huì)隨之遷移過(guò)去。例如:新浪網(wǎng)站的WWW服務(wù)器可能不止一個(gè),一個(gè)用戶登錄之后要去各個(gè)頻道瀏覽,但是每個(gè)頻道都在不同的服務(wù)器上,如果想在這些WWW服務(wù)器共享Session信息怎么辦呢?
Cookie的依賴性:實(shí)際上客戶端的Session信息是存儲(chǔ)與Cookie中的,如果客戶端完全禁用掉了Cookie功能,他也就不能享受到了Session提供的功能了。
鑒于ASP Session的以上缺陷,微軟的設(shè)計(jì)者們?cè)谠O(shè)計(jì)開(kāi)發(fā) ASP.NET Session時(shí)進(jìn)行了相應(yīng)的改進(jìn),完全克服了以上缺陷,使得ASP.NET Session成為了一個(gè)更加強(qiáng)大的功能。

Web.config文件簡(jiǎn)介
  有的ASP.NET程序員說(shuō):Web.config文件?我從來(lái)沒(méi)有聽(tīng)說(shuō)過(guò)啊,可是我寫(xiě)的程序不是也能很正常的運(yùn)轉(zhuǎn)嗎?是的,你說(shuō)得沒(méi)錯(cuò),沒(méi)有Web.config文件程序是可以正常運(yùn)行的。但是,如果你做了一個(gè)大型的網(wǎng)站,需要對(duì)整個(gè)網(wǎng)站做一些整體配置,例如整個(gè)網(wǎng)站的頁(yè)面使用何種語(yǔ)言編寫(xiě)的、網(wǎng)站的安全認(rèn)證模式、Session信息存儲(chǔ)方式等,這時(shí)你就需要使用Web.config文件了。雖然Web.config文件中的某些選項(xiàng)是可以通過(guò)IIS配置的,但是如果在Web.config中也有相應(yīng)的設(shè)置就會(huì)覆蓋掉IIS中的配置。而且,Web.config文件的最大的便利之處就是可以在ASP.NET頁(yè)面中通過(guò)調(diào)用System.web名字空間訪問(wèn)Web.config中的設(shè)置。

  Web.config有兩種,分別是服務(wù)器配置文件和Web應(yīng)用程序配置文件,他們都名為Web.config。在這個(gè)配置文件中會(huì)保存當(dāng)前IIS服務(wù)器中網(wǎng)頁(yè)的使用哪種語(yǔ)言編寫(xiě)的、應(yīng)用程序安全認(rèn)證模式、Session信息存儲(chǔ)方式的一系列信息。這些信息是使用XML語(yǔ)法保存的,如果想對(duì)其編輯,使用文本編輯器就行了。

  其中服務(wù)器配置文件會(huì)對(duì)IIS服務(wù)器下所有的站點(diǎn)中的所有應(yīng)用程序起作用。在.NET Framework 1.0中,服務(wù)器的Web.config文件是存在:\WinNT\Microsoft.NET\Framework\v1.0.3705中的。

  而Web應(yīng)用程序配置文件Web.config則保存在各個(gè)Web應(yīng)用程序中。例如:當(dāng)前網(wǎng)站的根目錄\Inetpub\wwwroot,而當(dāng)前的Web應(yīng)用程序?yàn)镸yApplication,則Web應(yīng)用程序根目錄就應(yīng)為:\Inetpub\wwwroot\MyApplication。如果你的網(wǎng)站有且只有一個(gè)Web應(yīng)用程序,一般說(shuō)來(lái)應(yīng)用程序的根目錄就是\Inetpub\wwwroot。如果想添加一個(gè)Web應(yīng)用程序,在IIS中添加一個(gè)具有應(yīng)用程序起始點(diǎn)的虛擬目錄就行了。這個(gè)目錄下的文件及目錄將被視為一個(gè)Web應(yīng)用程序。但是,這樣通過(guò)IIS添加Web應(yīng)用程序是不會(huì)為你生成Web.config文件的。如果想創(chuàng)建一個(gè)帶有Web.config文件的Web應(yīng)用程序,需要使用Visual Studio.NET,新建一個(gè)Web應(yīng)用程序項(xiàng)目。

  Web應(yīng)用程序的配置文件Web.config是可選的,可有可無(wú)。如果沒(méi)有,每個(gè)Web應(yīng)用程序會(huì)使用服務(wù)器的Web.config配置文件。如果有,則會(huì)覆蓋服務(wù)器Web.config配置文件中相應(yīng)的值。

  在ASP.NET中,Web.config修改保存后會(huì)自動(dòng)立刻成效,不用再像ASP中的配置文件修改后需要重新啟動(dòng)Web應(yīng)用程序才能生效了。

Web.config文件中的Session配置信息
  打開(kāi)某個(gè)應(yīng)用程序的配置文件Web.config后,我們會(huì)發(fā)現(xiàn)以下這段:

<sessionState
  mode="InProc"
  stateConnectionString="tcpip=127.0.0.1:42424"
  sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
  cookieless="false"
  timeout="20"
/>

  這一段就是配置應(yīng)用程序是如何存儲(chǔ)Session信息的了。我們以下的各種操作主要是針對(duì)這一段配置展開(kāi)。讓我們先看看這一段配置中所包含的內(nèi)容的意思。sessionState節(jié)點(diǎn)的語(yǔ)法是這樣的:

<sessionState mode="Off|InProc|StateServer|SQLServer"
              cookieless="true|false"
              timeout="number of minutes"
              stateConnectionString="tcpip=server:port"
              sqlConnectionString="sql connection string"
              stateNetworkTimeout="number of seconds"
/>
 

必須有的屬性是

屬性 選項(xiàng) 描述
mode 設(shè)置將Session信息存儲(chǔ)到哪里
Off 設(shè)置為不使用Session功能
InProc 設(shè)置為將Session存儲(chǔ)在進(jìn)程內(nèi),就是ASP中的存儲(chǔ)方式,這是默認(rèn)值。
StateServer 設(shè)置為將Session存儲(chǔ)在獨(dú)立的狀態(tài)服務(wù)中。
SQLServer 設(shè)置將Session存儲(chǔ)在SQL Server中。

可選的屬性是:

屬性 選項(xiàng) 描述
cookieless 設(shè)置客戶端的Session信息存儲(chǔ)到哪里
ture 使用Cookieless模式
false 使用Cookie模式,這是默認(rèn)值。
timeout 設(shè)置經(jīng)過(guò)多少分鐘后服務(wù)器自動(dòng)放棄Session信息。默認(rèn)為20分鐘
stateConnectionString 設(shè)置將Session信息存儲(chǔ)在狀態(tài)服務(wù)中時(shí)使用的服務(wù)器名稱和端口號(hào),例如:"tcpip=127.0.0.1:42424”。當(dāng)mode的值是StateServer是,這個(gè)屬性是必需的。
sqlConnectionString 設(shè)置與SQL Server連接時(shí)的連接字符串。例如"data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind"。當(dāng)mode的值是SQLServer時(shí),這個(gè)屬性是必需的。
stateNetworkTimeout 設(shè)置當(dāng)使用StateServer模式存儲(chǔ)Session狀態(tài)時(shí),經(jīng)過(guò)多少秒空閑后,斷開(kāi)Web服務(wù)器與存儲(chǔ)狀態(tài)信息的服務(wù)器的TCP/IP連接的。默認(rèn)值是10秒鐘。

ASP.NET中客戶端Session狀態(tài)的存儲(chǔ)
  在我們上面的Session模型簡(jiǎn)介中,大家可以發(fā)現(xiàn)Session狀態(tài)應(yīng)該存儲(chǔ)在兩個(gè)地方,分別是客戶端和服務(wù)器端?蛻舳酥回(fù)責(zé)保存相應(yīng)網(wǎng)站的SessionID,而其他的Session信息則保存在服務(wù)器端。在ASP中,客戶端的SessionID實(shí)際是以Cookie的形式存儲(chǔ)的。如果用戶在瀏覽器的設(shè)置中選擇了禁用Cookie,那末他也就無(wú)法享受Session的便利之處了,甚至造成不能訪問(wèn)某些網(wǎng)站。為了解決以上問(wèn)題,在ASP.NET中客戶端的Session信息存儲(chǔ)方式分為:Cookie和Cookieless兩種。

  ASP.NET中,默認(rèn)狀態(tài)下,在客戶端還是使用Cookie存儲(chǔ)Session信息的。如果我們想在客戶端使用Cookieless的方式存儲(chǔ)Session信息的方法如下:

  找到當(dāng)前Web應(yīng)用程序的根目錄,打開(kāi)Web.Config文件,找到如下段落:

<sessionState
  mode="InProc"
  stateConnectionString="tcpip=127.0.0.1:42424"
  sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
  cookieless="false"
  timeout="20"
/>

  這段話中的cookieless="false"改為:cookieless="true",這樣,客戶端的Session信息就不再使用Cookie存儲(chǔ)了,而是將其通過(guò)URL存儲(chǔ)。關(guān)閉當(dāng)前的IE,打開(kāi)一個(gè)新IE,重新訪問(wèn)剛才的Web應(yīng)用程序,就會(huì)看到類似下面的樣子:

  其中,http://localhost/MyTestApplication/(ulqsek45heu3ic2a5zgdl245)/default.aspx中黑體標(biāo)出的就是客戶端的Session ID。注意,這段信息是由IIS自動(dòng)加上的,不會(huì)影響以前正常的連接。

ASP.NET中服務(wù)器端Session狀態(tài)的存儲(chǔ)
準(zhǔn)備工作

  為了您能更好的體驗(yàn)到實(shí)驗(yàn)現(xiàn)象,您可以建立一個(gè)叫做SessionState.aspx的頁(yè)面,然后把以下這些代碼添加到<body></body>中。

<scriptrunat="server">
Sub Session_Add(sender As Object, e As EventArgs)
   Session("MySession") = text1.Value
   span1.InnerHtml = "Session data updated! <P>Your session contains: <font color=red>" & \
            Session("MySession").ToString() & "</font>"
End Sub

Sub CheckSession(sender As Object, eAs EventArgs)
   If (Session("MySession")Is Nothing) Then
    span1.InnerHtml = "NOTHING, SESSION DATA LOST!"
   Else
    span1.InnerHtml = "Your session contains: <font color=red>" & \
             Session("MySession").ToString() & "</font>"
End If
End Sub
</script>
<formrunat="server"id="Form2">
   <inputid="text1"type="text"runat="server"name="text1">
   <inputtype="submit"runat="server"OnServerClick="Session_Add"
      value="Add to Session State" id="Submit1"name="Submit1">
   <inputtype="submit"runat="server"OnServerClick="CheckSession"
      value="View Session State" id="Submit2"name="Submit2">
</form>
<hrsize="1">
<fontsize="6"><spanid="span1"runat="server" /></font>

  這個(gè)SessionState.aspx的頁(yè)面可以用來(lái)測(cè)試在當(dāng)前的服務(wù)器上是否丟失了Session信息。

將服務(wù)器Session信息存儲(chǔ)在進(jìn)程中
  讓我們來(lái)回到Web.config文件的剛才那段段落中:

<sessionState
  mode="InProc"
  stateConnectionString="tcpip=127.0.0.1:42424"
  sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
  cookieless="false"
  timeout="20"
/>

  當(dāng)mode的值是InProc時(shí),說(shuō)明服務(wù)器正在使用這種模式。

  這種方式和以前ASP中的模式一樣,就是服務(wù)器將Session信息存儲(chǔ)在IIS進(jìn)程中。當(dāng)IIS關(guān)閉、重起后,這些信息都會(huì)丟失。但是這種模式也有自己最大好處,就是性能最高。應(yīng)為所有的Session信息都存儲(chǔ)在了IIS的進(jìn)程中,所以IIS能夠很快的訪問(wèn)到這些信息,這種模式的性能比進(jìn)程外存儲(chǔ)Session信息或是在SQL Server中存儲(chǔ)Session信息都要快上很多。這種模式也是ASP.NET的默認(rèn)方式。

  好了,現(xiàn)在讓我們做個(gè)試驗(yàn)。打開(kāi)剛才的SessionState.aspx頁(yè)面,隨便輸入一些字符,使其存儲(chǔ)在Session中。然后,讓我們讓IIS重起。注意,并不是使當(dāng)前的站點(diǎn)停止再開(kāi)始,而是在IIS中本機(jī)的機(jī)器名的節(jié)點(diǎn)上點(diǎn)擊鼠標(biāo)右鍵,選擇重新啟動(dòng)IIS。(想當(dāng)初使用NT4時(shí),重新啟動(dòng)IIS必須要重新啟動(dòng)計(jì)算機(jī)才行,微軟真是@#$%^&)返回到SessionState.aspx頁(yè)面中,檢查剛才的Session信息,發(fā)現(xiàn)信息已經(jīng)丟失了。

將服務(wù)器Session信息存儲(chǔ)在進(jìn)程外
  首先,讓我們來(lái)打開(kāi)管理工具->服務(wù),找到名為:ASP.NET State Service的服務(wù),啟動(dòng)它。實(shí)際上,這個(gè)服務(wù)就是啟動(dòng)一個(gè)要保存Session信息的進(jìn)程。啟動(dòng)這個(gè)服務(wù)后,你可以從Windows任務(wù)管理器->進(jìn)程中看到一個(gè)名為aspnet_state.exe的進(jìn)程,這個(gè)就是我們保存Session信息的進(jìn)程。

  然后,回到Web.config文件中上述的段落中,將mode的值改為StateServer。保存文件后的重新打開(kāi)一個(gè)IE,打開(kāi)SessionState.aspx頁(yè)面,保存一些信息到Session中。這時(shí),讓我們重起IIS,再回到SessionState.aspx頁(yè)面中查看剛才的Session信息,發(fā)現(xiàn)沒(méi)有丟失。

  實(shí)際上,這種將Session信息存儲(chǔ)在進(jìn)程外的方式不光指可以將信息存儲(chǔ)在本機(jī)的進(jìn)程外,還可以將Session信息存儲(chǔ)在其他的服務(wù)器的進(jìn)程中。這時(shí),不光需要將mode的值改為StateServer,還需要在stateConnectionString中配置相應(yīng)的參數(shù)。例如你的計(jì)算你是192.168.0.1,你想把Session存儲(chǔ)在IP為192.168.0.2的計(jì)算機(jī)的進(jìn)程中,就需要設(shè)置成這樣:stateConnectionString="tcpip=192.168.0.2:42424"。當(dāng)然,不要忘記在192.168.0.2的計(jì)算機(jī)中裝上.NET Framework,并且啟動(dòng)ASP.NET State Services服務(wù)。

將服務(wù)器Session信息存儲(chǔ)在SQL Server中
  首先,還是讓我們來(lái)做一些準(zhǔn)備工作。啟動(dòng)SQL Server和SQL Server代理服務(wù)。在SQL Server中執(zhí)行一個(gè)叫做InstallSqlState.sql的腳本文件。這個(gè)腳本文件將在SQL Server中創(chuàng)建一個(gè)用來(lái)專門(mén)存儲(chǔ)Session信息的數(shù)據(jù)庫(kù),及一個(gè)維護(hù)Session信息數(shù)據(jù)庫(kù)的SQL Server代理作業(yè)。我們可以在以下路徑中找到那個(gè)文件:

[system drive]\winnt\Microsoft.NET\Framework\[version]\

  然后打開(kāi)查詢分析器,連接到SQL Server服務(wù)器,打開(kāi)剛才的那個(gè)文件并且執(zhí)行。稍等片刻,數(shù)據(jù)庫(kù)及作業(yè)就建立好了。這時(shí),你可以打開(kāi)企業(yè)管理器,看到新增了一個(gè)叫ASPState的數(shù)據(jù)庫(kù)。但是這個(gè)數(shù)據(jù)庫(kù)中只是些存儲(chǔ)過(guò)程,沒(méi)有用戶表。實(shí)際上Session信息是存儲(chǔ)在了tempdb數(shù)據(jù)庫(kù)的ASPStateTempSessions表中的,另外一個(gè)ASPStateTempApplications表存儲(chǔ)了ASP中Application對(duì)象信息。這兩個(gè)表也是剛才的那個(gè)腳本建立的。另外查看管理->SQL Server代理->作業(yè),發(fā)現(xiàn)也多了一個(gè)叫做ASPState_Job_DeleteExpiredSessions的作業(yè),這個(gè)作業(yè)實(shí)際上就是每分鐘去ASPStateTempSessions表中刪除過(guò)期的Session信息的。

  接著,我們返回到Web.config文件,修改mode的值改為SQLServer。注意,還要同時(shí)修改sqlConnectionString的值,格式為:

sqlConnectionString="data source=localhost; Integrated Security=SSPI;"

  其中data source是指SQL Server服務(wù)器的IP地址,如果SQL Server與IIS是一臺(tái)機(jī)子,寫(xiě)127.0.0.1就行了。Integrated Security=SSPI的意思是使用Windows集成身份驗(yàn)證,這樣,訪問(wèn)數(shù)據(jù)庫(kù)將以ASP.NET的身份進(jìn)行,通過(guò)如此配置,能夠獲得比使用userid=sa;password=口令的SQL Server驗(yàn)證方式更好的安全性。當(dāng)然,如果SQL Server運(yùn)行于另一臺(tái)計(jì)算機(jī)上,你可能會(huì)需要通過(guò)Active Directory域的方式來(lái)維護(hù)兩邊驗(yàn)證的一致性。

  同樣,讓我們做個(gè)試驗(yàn)。向SessionState.aspx中添加Session信息,這時(shí)發(fā)現(xiàn)Session信息已經(jīng)存在SQL Server中了,即使你重起計(jì)算機(jī),剛才的Session信息也不會(huì)丟失。現(xiàn)在,你已經(jīng)完全看見(jiàn)了Session信息到底是什么樣子的了,而且又是存儲(chǔ)在SQL Server中的,能干什么就看你的發(fā)揮了,哈哈。

總結(jié)
  通過(guò)這篇文章,你可以看到在Session的管理和維護(hù)上,ASP.NET比ASP有了很大的進(jìn)步,我們可以更加隨意的挑選適合的方法了。對(duì)于企業(yè)級(jí)的應(yīng)用來(lái)說(shuō),這無(wú)疑對(duì)于服務(wù)器的同步、服務(wù)器的穩(wěn)定性、可靠性都是有利的。相信在強(qiáng)大的微軟支持下,新一代的電子商務(wù)平臺(tái)將會(huì)搭建的更好!

  同時(shí),大家也會(huì)發(fā)現(xiàn),在這個(gè)整個(gè)技術(shù)中包括了操作系統(tǒng)、Web服務(wù)及數(shù)據(jù)庫(kù)多種技術(shù)的整合。我相信,也許Windows沒(méi)有Unix穩(wěn)定,IIS沒(méi)有Apache穩(wěn)定,SQL Server也沒(méi)有Oracle強(qiáng)大,但是,誰(shuí)可以將他們?nèi)绱送昝赖穆?lián)動(dòng)到一起呢?所以說(shuō),雖然微軟每一方面都不是太強(qiáng),但是如果把微軟的東西都整合到一起,誰(shuí)敢說(shuō)他不強(qiáng)大呢?微軟就是微軟!

出處:放飛技術(shù)網(wǎng)
責(zé)任編輯:cjj

◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論

作者文章
[ASP.NET] Session 詳解
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門(mén)搜索:CSS Fireworks 設(shè)計(jì)比賽 網(wǎng)頁(yè)制作 web標(biāo)準(zhǔn) 用戶體驗(yàn) UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點(diǎn)最新 站點(diǎn)最新列表
周大!熬•自然”設(shè)計(jì)大賽開(kāi)啟
國(guó)際體驗(yàn)設(shè)計(jì)大會(huì)7月將在京舉行
中國(guó)國(guó)防科技信息中心標(biāo)志征集
云計(jì)算如何讓安全問(wèn)題可控
云計(jì)算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會(huì)
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅(jiān)的"云和互聯(lián)網(wǎng)觀"
1499元買(mǎi)真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計(jì)大賽
欄目最新 欄目最新列表
淺談JavaScript編程語(yǔ)言的編碼規(guī)范
如何在illustrator中繪制臺(tái)歷
Ps簡(jiǎn)單繪制一個(gè)可愛(ài)的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡(jiǎn)單的作品展示頁(yè)面
CSS定位機(jī)制之一:普通流
25個(gè)最佳最閃亮的Eclipse開(kāi)發(fā)項(xiàng)目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨(dú)家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點(diǎn)的原創(chuàng)文章,但原作者和來(lái)自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來(lái)自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請(qǐng)不要盜鏈到本站,且不準(zhǔn)打上各自站點(diǎn)的水印,亦不能抹去我站點(diǎn)水印。

特別注意:本站所提供的攝影照片,插畫(huà),設(shè)計(jì)作品,如需使用,請(qǐng)與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請(qǐng)與我們聯(lián)系,我們將立即刪除修改。

您的評(píng)論
用戶名:  口令:
說(shuō)明:輸入正確的用戶名和密碼才能參與評(píng)論。如果您不是本站會(huì)員,你可以注冊(cè) 為本站會(huì)員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯(cuò)誤,請(qǐng)用報(bào)告錯(cuò)誤,以利文檔及時(shí)修改。
不評(píng)分 1 2 3 4 5
注意:請(qǐng)不要在評(píng)論中含與內(nèi)容無(wú)關(guān)的廣告鏈接,違者封ID
請(qǐng)您注意:
·不良評(píng)論請(qǐng)用報(bào)告管理員,以利管理員及時(shí)刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國(guó)的各項(xiàng)有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評(píng)論管理人員有權(quán)保留或刪除其管轄評(píng)論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評(píng)論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評(píng)論文檔 | 報(bào)告錯(cuò)誤  
專業(yè)書(shū)推薦 更多內(nèi)容
網(wǎng)站可用性測(cè)試及優(yōu)化指南
《寫(xiě)給大家看的色彩書(shū)1》
《跟我去香港》
眾妙之門(mén)—網(wǎng)站UI 設(shè)計(jì)之道
《Flex 4.0 RIA開(kāi)發(fā)寶典》
《贏在設(shè)計(jì)》
犀利開(kāi)發(fā)—jQuery內(nèi)核詳解與實(shí)踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2