2008年1月11日 星期五

安全性例外狀況

問題:
當我們在IIS下建立一個位於unc路徑下的虛擬目錄,而這個目錄下放的是ASP.NET的程式,這時候就會出現以下的錯誤訊息。

安全性例外狀況

描述: 應用程式嘗試執行安全原則不允許的作業。如果要授與這個應用程式所需的權限,請聯繫您的系統管理員,或在組態檔中變更這個應用程式的信任層級。
例外詳細資訊: System.Security.SecurityException: 型別 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 的使用權限要求失敗。
原始程式錯誤:

在執行目前 Web 要求期間,產生未處理的例外狀況。如需有關例外狀況來源與位置的資訊,可以使用下列的例外狀況堆疊追蹤取得。

Try to delete all assembly that referenced in this web project and
recompile them. This error may occur when there is some assembly builded
in previous version of ASP.NET.

原因:
在.NET Framework的程式碼存取安全性上預設是不允許執行任何非本機上的程式(組件), 如果有需要執行非本機上的.NET應用程式,則必須在Runtime安全性原則內加入信任這些程式的安全性原則。

解決方法:
1.[開始]->[控制台]->[系統管理工具]->[Microsoft .NET Framework 1.1 設定]
2.選擇透過[Runtime 安全性原則]
3.設定"增加組件的信任"
4.選[對這部電腦進行變更]
5.選取所要套用的組件(Code-Behide或其他非.NET Framework組件)
6.將組件的信任層級設定為[完全信任]
7.重覆此動作將所要新增的組件一一加入

2008年1月10日 星期四

AIX 效能監控

今天請教同事sung學到的指令

topas  -->就是一般unix上的top指令

vmstat 3 10  -->每3秒顯示1次系統狀態,共顯示10次

sar

2008年1月4日 星期五

Oracle Redo、Undo及Rollback Segment觀念

記得剛接觸Oracle時,只是把他當作應用程式儲存資料的地方,所以那時候和DBA溝通時,聽他們在講什麼Redo、Undo、Rollback Segment也是常常搞混,最近有朋友剛開始玩Oracle,環境中有7.x~10g都有,所以被搞的頭昏腦脹,只好打電話問我..我是這樣回答的:

Redo就是重作,當我們使用DML指令(Update、Delete、Insert)對資料進行修改後,Oracle會將我們對資料修改的操作及資料本身寫入Redo Log Buffer,Oracle會找適當的時機(*註1)將Redo Log Buffer內的東西寫入Redo Log Files,由於Redo Log Files是循環寫入的,所以在異動頻繁的狀態下會很快被蓋掉,如果想要將這些異動的記錄保留下來,就請開啟Oracle Archiving Mode,這樣Oracle作Log Switch時,就會將Redo Log Files內容另存一份成為Archive Log Files

Undo就是取消之前作的,8i以前(含8i)的Rollback Segment,在9i改叫Undo Segment;當我們進行交易時,Oracle會利用Undo Segment來存放異動前後的資料,在交易未Commit前,其他使用者可以在這裡查詢舊資料,如果交易失敗或取消,Oracle就可以很快的將由回復原先的資料,在9i提供了Flashback Query可以讓我們查詢交易Commit以前的資料(能查多久以前的資料?看Undo Tablespace有多大、UNDO_RETENTION設多少),到了10g,我們甚至可以回復已經Commit的交易(利用Flashback Query中的Undo SQL指令)。

註1.所謂適當時機就是:

  • 交易確認時
  • Redo Log Buffer的資料異動量放超過整個Buffer的1/3
  • Redo Log Buffer的資料異動量超過1MB
  • 當DBWR將異動的Data Block從Data Buffer Cache寫入Data Files之前

2007年12月5日 星期三

如何讓非本機電腦也可以透過IE測試叫用Web Service

我們在使用VS2005開發完Web Service後,就會把Web Service部署到某台IIS伺服器上,在伺服器本機上,我們可以用IE來測試叫用Web Service的Method。

本機

 

在非本機電腦上叫用Method則會出現"測試表單只適用於來自本機電腦的要求"的訊息

非本機

 

可是有時候,我們就是會有要在非本機測試叫用Web Service的需求,怎麼辦呢?

答案就是改Web.Config

在 <system.web> .... </system.web>區段中加入下面這一段

    <webServices>
        <protocols>
            <add name="HttpGet" />
        <add name="HttpPost" />
        </protocols>
    </webServices>

大功告成!

2007年12月2日 星期日

永遠的Trade-off

Trade-Off

一樣是上星期去上HP Mercury的產品說明會,其中一張投影片的內容,講師說的是要將降低風險到最低,時間、成本會增加;要省成本則風險、時間就會增加;要減短時間則風險、成本會提高。

之前在MCSD的教材看過類似的圖,講的是軟體專案的需求管理,內容大概是如果使用者不斷提出需求,可以畫這張圖給他看,把把Risk換成Requirment,讓他暸解需求太多,專案開發的成本和時程都會大幅增加,藉此和使用者達成Trade-off。

圖是自己用Visio畫的....沒有很漂亮, 看的懂就好!

Test V-Model

測試V-Model

上星期去上HP Mercury的產品說明會,講師提到Test V-Model,講的是最初從一個Idea開始,到最後應用程式安裝到使用者端的一個流程,並標示出系統實際開發前就應該定義出相關的測試內容。

圖是自己用Visio畫的....沒有很漂亮, 看的懂就好!

2007年10月25日 星期四

Oracle啟動Archiving Mode的步驟

1.關閉資料庫
shutdown immediate;

2.啟動資料庫至Mount狀態
startup mount;

3.設定資料庫為Archiving Mode
alter database archivelog;

4.開啟資料庫
alter database open;

5.最後建議作個完整備份