2016-01-28 31 views
0

我有一個由dll和Windows服務組成的自託管WCF服務。在dll中我描述了wcf服務和app.config。 wcf服務旨在承載整個事情。在Windows服務中查找未處理的異常OnStart

我的問題是,當我嘗試啓動服務,現在它不會啓動。 「你的服務已經開始,然後停止」這種事情。

我試圖通過取代一些代碼來搜索錯誤。我做到了,直到只有結構(Initialisation,onstart,onstop),然後它不起作用?

這是更經常發生的事情嗎? System.Diagnostics.Debbuger.Launch不適用於調試。有人更好的想法調試OnStart方法?

+0

您是否檢查事件查看器?也沒有代碼,很難推測什麼可能是問題 – Viru

+0

1.使用'Thread.Sleep()'暫停Windows服務的啓動,以便您可以使用Visual Studio在啓動過程中附加到進程。 2.使用WCF跟蹤捕獲WCF異常,https://msdn.microsoft.com/en-us/library/ms733025(v=vs.110).aspx –

+0

將日誌記錄添加到您的應用程序,包括未處理的異常。 – Richard

回答

0

在「OnStart」方法中添加try ... catch並記錄到事件日誌中,並查看是否收到任何異常。

您的WCF綁定或服務合約實施中可能存在一些問題。所以,請檢查WCF配置以及問題。如果您可以發佈配置的內容,最好提供更多指導。

爲了快速排除故障,您可以將WCF託管在控制檯應用程序中,並查看它是否工作正常,而不是每次啓動服務。

0

你可以在'OnStart'方法中嘗試Thread.Sleep(毫秒),在下一行設置'break',並附加調試器(vs中的alt + ctrl + p)來調試它,如果服務在到達break點 - 應該是配置文件的問題,請在這裏發佈。

+0

感謝您的提示,我會盡快儘快更新。 –

+0

在斷點前斷開 –

+0

我沒有得到。當我刪除所添加的所有引用(WCF和一個DLL)時,我重置了App.config文件並刪除了除初始化onstart和onstop之外的所有內容,但它仍然會產生相同的錯誤 –