欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
為Asp.net應用程序設置構建Web服務(wù)—編程愛(ài)好者網(wǎng)站 http://www.programfan.com
作者:宋華

  一、什么是應用程序設置

  應用程序設置通常是指與應用程序密切相關(guān)的一系列參數。在基于窗體的Windows應用程序中,應用程序設置主要包括影響應用程序布局的位置、尺寸等參數;影響應用程序外觀(guān)的顏色、形狀等參數;此外,還包括應用程序的語(yǔ)言、文化等設置以及數據源和連接字符串等等。這些參數設置在程序開(kāi)發(fā)中應用廣泛,有的被用來(lái)保持應用程序的一致性、連續性,比如保存應用程序結束時(shí)的窗體大小、位置及背景顏色,下次執行應用程序時(shí)恢復這些設置;另一些參數則使程序代碼更加簡(jiǎn)潔高效,比如保存數據庫連接字符串供多次調用。

  與基于窗體的windows應用程序不完全相同,基于web的Asp.net應用程序有其自身的特殊性,它是面向網(wǎng)絡(luò )的。這決定了asp.net應用程序設置除包括上面的參數外,還包括,

   # 身份驗證和授權等安全機制

   # 網(wǎng)絡(luò )傳輸協(xié)議類(lèi)型和針對特定類(lèi)型文檔的http處理程序

  # 事務(wù)處理

  # 為所有頁(yè)面設置超時(shí)

  # 定制出錯頁(yè)面來(lái)代替默認IIS出錯頁(yè)面

  # 會(huì )話(huà)和會(huì )話(huà)狀態(tài)信息

  # 頁(yè)面緩存行為

  # 自定義及擴展

  可見(jiàn),asp.net 應用程序設置參數類(lèi)型更為豐富。實(shí)際開(kāi)發(fā)中,它們不僅被用來(lái)提高應用程序安全性、高效性,而且易于對特定用戶(hù)實(shí)施管理并可定制需求。

  二、為什么要將asp.net應用程序設置外置為web服務(wù)

  關(guān)于web服務(wù)的優(yōu)點(diǎn)就不用再提了,媒體鋪天蓋地的宣傳和在許多領(lǐng)域的廣泛應用已經(jīng)足夠說(shuō)明問(wèn)題。不過(guò)這里仍然要強調的是,web服務(wù)實(shí)際上就是asp.net應用程序,只不過(guò)重新進(jìn)行了組織。特別地,web服務(wù)為不同應用程序之間共享對象提供了實(shí)現。通過(guò)簡(jiǎn)單的引用,你可以在程序中訪(fǎng)問(wèn)另一程序實(shí)現的功能,而不僅僅是asp.net中那樣只有通過(guò)瀏覽器才能實(shí)現。顯而易見(jiàn),web服務(wù)也具有一般asp.net應用程序所擁有的許多功能和特性。Asp.net和web服務(wù)都有狀態(tài)管理功能就是一個(gè)典型的示例。

  然而,將asp.net應用程序設置外置為web服務(wù)有什么優(yōu)點(diǎn)呢?一方面可以從軟件(應用程序)可復用性方面得到答案,試想一想,如果客戶(hù)應用程序(源)需要使用另一應用程序(目標)的設置參數,這時(shí),將目標應用程序設置配置為web服務(wù),在源應用程序中就能夠方便地調用了,就像在本機配置了同樣的設置一樣。另一方面,web服務(wù)(asp.net應用程序應用)特殊的存儲其應用程序設置的機制(即下面將講述的web.config文件存儲設置)使得應用程序跨平臺、跨internet以及應用程序的升級和xcopy部署方式成為可能。

  三、存儲asp.net應用程序設置

  我們應該已經(jīng)知道,基于windows應用程序的設置一般保存在注冊表中。通過(guò)對注冊表寫(xiě)入"鍵值對",保存特定相應的設置值。然后,通過(guò)讀取注冊表的"鍵值對",取出相應的設置值??磥?lái),過(guò)程本身并不復雜,加上.Net框架為注冊表的讀寫(xiě)提供了豐富的類(lèi)庫支持,使得操作注冊表以讀寫(xiě)應用程序設置更為簡(jiǎn)單(關(guān)于注冊表讀寫(xiě)請參見(jiàn)專(zhuān)門(mén)的文章,這里就不展開(kāi)了)。

  然而,注冊表本身是個(gè)相當敏感的區域,對它的讀寫(xiě)不可避免地引發(fā)安全隱患,即便在本地主機上操作也要相當慎重,更何況置身于不可預料用戶(hù)數量的網(wǎng)絡(luò )環(huán)境之下,就更應該在公開(kāi)注冊表的讀寫(xiě)操作時(shí)慎之又慎!或者,干脆找別的方法替代!

  正是由于這樣的原因,Asp.net應用程序設置除了存儲在注冊表中外,更多地,通過(guò)以下兩種方式來(lái)存儲:

    # Application對象

    # Web.config文件

  四、使用Application對象存儲應用程序設置

  對我們來(lái)說(shuō),Application對象相當熟悉。它是asp.net從asp中保留下來(lái)的、用以簡(jiǎn)化應用程序狀態(tài)管理的兩個(gè)對象之一(另一個(gè)是Session對象)。作為一個(gè)asp.net應用程序,web服務(wù)就象其他任何web應用程序一樣,也能夠訪(fǎng)問(wèn)application對象。

  在asp.net中,application對象可視為高級語(yǔ)言中的全局變量。它在應用程序中保持一致,以實(shí)現 ASP.NET 應用程序中多個(gè)會(huì )話(huà)和請求之間的全局信息共享。(有必要提一下,ASP.NET 應用程序是單個(gè) Web 服務(wù)器上的某個(gè)虛擬目錄及其子目錄范圍內的所有文件、頁(yè)、處理程序、模塊和代碼的總和。)

有別于普通全局變量的是,asp.net應用程序狀態(tài)Application對象在客戶(hù)端第一次從某個(gè)特定的 ASP.NET 應用程序虛擬目錄中請求任何 URL 資源時(shí)創(chuàng )建。Web 服務(wù)器上的每個(gè) ASP.NET 應用程序都要創(chuàng )建一個(gè)單獨的實(shí)例。然后通過(guò)此Application對象公開(kāi)對每個(gè)實(shí)例的引用。

  這樣,application對象適宜被用來(lái)保存需要不同用戶(hù)共享的數據,記載關(guān)于應用程序的設置情況,以使其能夠被運行于同一個(gè)web應用程序中的所有代碼訪(fǎng)問(wèn),進(jìn)一步,將包含application對象的方法外置為web服務(wù),以在應用程序中共享對象并操作應用程序設置值。有關(guān)應用程序訪(fǎng)問(wèn)次數的狀態(tài)編程,讀取遠程數據庫的互操作編程等都通過(guò)以此類(lèi)似的方式來(lái)實(shí)現應用程序的設置共享。

  下面的代碼使用application對象,記載特定應用程序的訪(fǎng)問(wèn)次數,并將方法外置為web服務(wù)供應用程序調用:

[WebService(Namespace="http://www.thjx.com")]
public class Application : System.Web.Services.WebService
{
  /// <summary>
  /// 返回應用程序被訪(fǎng)問(wèn)次數
  /// </summary>
  [WebMethod(Description="返回特定應用程序被訪(fǎng)問(wèn)的次數")]
  public int GetAppAccessCount(string key)
  {
if(Application[key]==null)
{
 Application.Lock();//鎖定Application對象以同步訪(fǎng)問(wèn)
 Application[key]=1;
 Application.UnLock();//取消鎖定
}
else
{
 Application.Lock();
 Application[key]=Int32.Parse(Application[key].ToString())+1;
 Application.UnLock();
}
return (int)Application[key];
}
}



  方法GetAppAccessCount(string key)在特定應用程序被執行一次后訪(fǎng)問(wèn)次數遞增1個(gè)單位量,并保存在應用程序設置變量中,下一次來(lái)自任何用戶(hù)的訪(fǎng)問(wèn)將在這個(gè)變量的基礎上遞增該設置。

  五、使用Web.congfig文件存儲應用程序設置

  從上面可以知道,asp.net應用程序需要配置很多的特殊設置,包括為所有頁(yè)面設置超時(shí)、定制出錯頁(yè)面來(lái)代替默認IIS出錯頁(yè)面以及安全設置和授權級別設置等??瓷先?,這么多類(lèi)型的設置一定很麻煩,幸運地是,asp.net結束了需要進(jìn)行手工配置的歷史,那就是將設置保存在Web.config文件中。這是不同于此前提到的使用注冊表或application對象保存應用程序設置的另一種保存應用程序設置的方法。由于web.config文件存在于應用程序根目錄下,以這種方式保存的應用程序設置將使應用程序跨平臺使用和伸縮性大大增強。

  使用web.config文件存儲應用程序設置有很多優(yōu)點(diǎn),web.config實(shí)際上是一個(gè)純文本文件,顯然,存儲在純文本文件中的配置信息非常容易修改,而且,不象傳統的asp,任何對配置設置的修改不需要重新啟動(dòng)web服務(wù)器,就可以立即應用于當前的web應用程序;同時(shí),設置好的配置被自動(dòng)應用于當前文件夾和它所有的子文件夾,使真正兼容主機的xcopy成為可能,我們只需要復制另一個(gè)IIS虛擬目錄中的所有web應用程序文件即可實(shí)現應用程序部署;另外,一些特定任務(wù)的配置如基于表單的授權只有通過(guò)使用web.config文件才能實(shí)現。

  這里,有必要簡(jiǎn)要說(shuō)說(shuō)web.config文件的構造。web.config文件是標準的xml文件,遵循格式正確的xml文檔的所有規范。它包括多個(gè)部分,每一部分處理一個(gè)特殊的任務(wù)。web.config文件由許多小節組成,包括驗證小節、安全性小節、錯誤處理小節和web服務(wù)小節。并以鍵值對的形式保存應用程序配置信息。

  作為標準的xml文檔,web.config文件的根元素是<configuration>,它包含一個(gè)子元素<system.web>,而后者又包括許多配置部分。Web.config文件包含許多標記,每一個(gè)標記對應一個(gè)所謂的"部分(section)"。如,表示身份驗證的Authentication、表示授權的Authorization、定制錯誤的CustomErrors、會(huì )話(huà)設置SessionState等等。

  盡管web.config文件為用戶(hù)自定義提供了很大的空間,我們可能仍然需要一些用戶(hù)設置。appSettings部分就是用來(lái)滿(mǎn)足這項要求的,請記住這部分并不在<system.web ></system.web>標記中,而是單獨存放在<configuration></configuration>標記中,數據庫連接字符串、email服務(wù)器地址和日志文件存放路徑,通常頁(yè)可以放在這部分。

  下面的代碼片段是一個(gè)web.config文件的設置小節,該小節定義了應用程序設置,即appSettings小節,它包含了數據庫連接字符串和另一個(gè)用戶(hù)設置LogFilePath鍵值對:

<configuration>
  <appSettings>
<add key="Conn" value="server=(local);uid=sa;pwd=;database=myDB" />
<add key="logFilePath" value="c:\mylogs" />
</appSettings>
</configuration>



  .Net框架支持asp.net應用程序訪(fǎng)問(wèn)應用程序設置。其ConfigurationSettings 類(lèi)提供對指定配置小節中配置設置的訪(fǎng)問(wèn)。該類(lèi)的公共屬性ConfigurationSettings.AppSettings 屬性可獲取 <appSettings> 元素配置節中的配置設置,該屬性是一個(gè)NameValueCollection,它包含配置設置的名稱(chēng)/值對:

public static NameValueCollection.AppSettings {get;}



  下面的web服務(wù)方法用于獲取應用程序配置設置:using System.Configuration;

[WebMethod]
public string GetAppSetting(string key)
{
return ConfigurationSettings.AppSettings[key];
}



  注意,AppSetting屬性是只讀的,要想修改應用程序設置,必須編輯web.config文件。同時(shí),如果key鍵并不存在于web.config文件中,讀取AppSettings屬性將引發(fā)錯誤。

  ConfigurationSettings 類(lèi)還提供了一個(gè)公共方法ConfigurationSettings.GetConfig 用于返回用戶(hù)定義的配置節的配置設置。

public static object GetConfig(string sectionName);



  其中,參數sectionName 表示要讀取的配置節。下面的web服務(wù)方法用于獲取用戶(hù)定義配置的指定鍵值:

[WebMethod]
public string GetConfig(string key)
{
NameValueCollection nv=new NameValueCollection();
//實(shí)例化NameValueCollection 類(lèi)對象
nv=(NameValueCollection)ConfigurationSettings.GetConfig("appSettings");
//返回用戶(hù)定義的配置節的設置
return nv[key].ToString();
//返回特定鍵值
}



  六、消費"實(shí)現asp.net應用程序設置的web服務(wù)"

  你可以編寫(xiě) Web應用程序、Windows桌面應用程序或Web服務(wù)等應用程序來(lái)消費已經(jīng)創(chuàng )建的應用程序設置web服務(wù)。實(shí)現方式同任何標準的web服務(wù)一樣,沒(méi)有什么特別之處,應該說(shuō)很簡(jiǎn)單,這里就不展開(kāi)講解了。

  參考資料:《Professional Xml For .Net Developers》、《Professional Asp.net Web Services》 
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
認識ASP.NET配置文件Web.config
asp.net 2.0 讀寫(xiě)配置文件
ASP.NET2.0里的web.config配置接口A(yíng)PI(轉)
ASP.NET中使用web.config配置web應用程序中的數據庫連接--西部E網(wǎng)wes...
.Net模塊:配置文件
ASP.NET狀態(tài)管理——Application
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久