在.Net Web服務中,可以確定程序集是否在Web服務中加載?如果是的話,那麼這樣的支票將如何製作?從這樣的檢查可以確定大會的原始位置?是否有可能確定程序集是否在Web服務中加載?
這是涉及到我們的組件應用程序的多個入口點之間共享一個服務器,有些是通過Web服務暴露和其他人通過正常的Windows服務承載的更傳統的TCP套接字暴露在一個漫長的故事。也可能有其他Windows服務使用相同的共享程序集運行。每個的配置需求都略有不同,並且像System.Windows.Forms.Application.ExecutablePath這樣的調用會根據「託管」程序集產生不同的結果。我需要能夠可靠地計算程序集的位置來計算配置文件的位置。
的Web.config /的app.config不能在這種情況下的選擇。
這將有可能把一個進入可能被用於確定應用程序(S)和所有組件都位於註冊表。但是這不像應用程序自己計算位置那樣理想。
編輯:
讓我們說foo.dll可以從兩個MyApp.asmx(網絡服務)和MyService.exe(Windows服務)被調用。無論如何,要確定MyApp.asmx是否是從代碼隱藏(MyApp.dll)中加載foo.dll的應用程序?
這將讓組件的完整列表,但是沒有解決的首要問題:如何確定組件由Web服務中運行。 – 2009-02-25 21:52:49
當你說「來自web服務內部」時,你的意思是檢查發生在你的web服務中執行的代碼中,或者你是web服務的外部,並且想要問服務是否已經加載了給定的程序集? – 2009-02-25 21:56:44
來自在Web服務中執行的代碼。它可能是Web服務已加載的附加程序集。 – 2009-02-25 22:09:11