發表文章

目前顯示的是有「Service」標籤的文章

監控服務(Service)的目前狀態

一般撰寫完Service程式之後,Service都是在背景持續的作業,前景部分是不會看到任何的介面的,那麼就會有一些延伸的需求產生。例如說如何知道目前Service的狀態,或是怎麼從Service中取出一些目前運作的訊息等等;這邊就先來看看要怎麼去取得Service的狀態。 要取得目前服務的狀態其實在實作上非常的簡單,只要利用ServiceController的功能就可以達到了,例如下面這個範例可以列出目前系統中的所有服務以及該服務是否支援『停止』的動作 using  System; using  System . ServiceProcess; using  System . Windows . Forms; namespace  svcMonitor {      public   partial   class   Form1  :  Form     {          ServiceController [] svcList;          public  Form1()         {             InitializeComponent();         }          private   void  btnRefresh_Click( object  sender,  EventArgs  e)     ...

Cross-domain calls for Silverlight apps on self-hosted service

最近開始將一些新的App改用WPF來實作,而在撰寫的過程中也一起試了一下Silverlight,畢竟如果用SL可以搞定的話,Web部屬的方便性還是要比Client-Server一台一台去安裝要來的方便很多的。 而在測試Silverlight的過程中,想起在之前就有看過一些安全性的規定,在跨網域(cross-domain)的狀況下,Silverlight是會被限制存取的;而現在大部分的App後面都帶著一隻Windows Service,並且裝載了WCF Service提供呼叫,所以就優先來測試一下這個部分了。 在進入今天的正題之前,先來看一下在一般的情形下(這裡的一般指的是裝載在IIS上的Service或是網站資源等狀況),Silverlight apps如果需要跨網域去存取資源的話要怎麼做呢? 首先先說一下跨網域,跨網域的意思是什麼呢?比如說Silverlight裝載的位置是http://www.myweb.com/myApp,而開始執行App之後,假設App需要去呼叫位於http://www.othersite.com/xxxx.asmx所提供的Web Service,那麼這個時候的動作就是cross-domain了,那怎麼去處理這個問題呢?首先可以參考一下這篇資料 讓服務可跨網域界限使用 在上面這篇文章可以看到有兩種方式可以處理,加入『clientaccesspolicy.xml』或是『crossdomain.xml』都可以,首先要特別注意的是 不論使用哪個檔案,都必須放置在服務的提供端,而 不是 放在Silverlight app這邊 ,所以如果提供服務的這端如果不是你自己可以控制的,那麼就要聯絡服務端,確認是不是可以開放呼叫的權限,要不就是要另外自行撰寫另外的Service來做中介,一邊向原始來源取得資料,另一邊提供給Silverlight app使用了。 這邊簡單的看一下clientaccesspolicy.xml的內容,檔案內容會長的像是下面這樣 < access - policy > < cross - domain - access > < policy > < allow - from http - request - headers = "SOAP...