最近做的一個windows服務的項目

來源:互聯網
上載者:User

最近做的一個項目,牽涉到windows service和webservice,我想把做這個項目的一點小小的經驗記下來,對遇到同樣問題的朋友或許會起到一點小小的協助,呵呵。

項目剛開始的時候我並沒有打算採用以前經常使用的那種三層結構的模式,因為這個項目實在是太小了,一個解決方案裡面只包含了一個web site和一個windows service。web site裡包含裡簡單的webservice和幾個page,唯一比較特殊的一點就是webservice是用vb編寫的,而其餘的page使用c#。為了編寫方便,我把以前經常用到的sqlhelper類也拷貝到了web site下的App_Code檔案夾裡,由於webservice(類的名字叫IBMLoad.cs)使用VB語言,所以在編譯的時候就報錯,說IBMLoad.cs和sqlhelper.cs不能同時放在App_Code檔案夾中,因為他們一個是使用VB一個是使用C#。基於這個原因,我又添加了一個類庫項目,將sqlhelper.cs放在了這個類庫項目中。後來想了想,還不如採用以前的模式,把各層之間分開。可是這樣做,我就要在windows service項目中引用其它的一些項目,比如IDAL,SQLServerDAL,Entity等,這與我以前做windows service時不太一樣,我以前寫的幾個項目所有代碼都放在一起,亂是亂了些,但是自己看習慣了,也沒覺得什麼不好。這次這樣一搞,代碼都寫在了其它地方,windows service中沒有幾行代碼,反倒是不習慣了。

可是我安裝之後啟動服務的時候卻出錯了,如:

後來才發現,就是因為windows service引用了其它的幾個項目,產生之後產生了一堆的DLL檔案,而我在安裝的時候還是採用以前的那種方法,只拷貝了一個exe檔案到目標伺服器進行安裝,其實這個服務真正的商務邏輯是在那一堆DLL檔案裡面,在缺少DLL檔案的情況下進行安裝,這時候的windows service就像一張白紙,什麼都沒有,所以它們就沒有什麼可做的。

所以我把安裝好的服務卸載掉,然後將exe和DLL檔案同時拷貝到目標伺服器,然後運行安裝。安裝完畢後啟動服務,就能夠正常運行了。不過現在我有個疑問,如果只是一個單獨的windows service項目,有必要採用分層的方式實現嗎?希望高手看到能夠指點一下。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.