我們在WCF服務上有一個插件系統,用於檢查位於bin文件夾中的庫是否存在某些裝配級屬性並加載它們。這允許基於哪個客戶端正在進行呼叫來定製某些服務呼叫。這在大多數情況下都很有效。但是,有時它似乎失去了dll,這導致服務恢復到每個客戶端的默認實現。到目前爲止,解決方案只是將dll文件移出bin文件夾,然後重新進入。這會導致asp.net拿起該文件,並且自定義設置再次開始工作。ASP.NET在bin目錄中忘記dll
我不知道爲什麼在一段時間之後會議會這樣錯過。任何想法可能會導致這種情況?
編輯:問題說明更清楚
我們的服務使用服務工廠來伸手,基於什麼客戶端調用代碼自定義實現。如果沒有自定義實現,我們發佈默認實現。我們使用GetAssemblies來檢查裝配了一個屬性的程序集,該屬性將它們指定爲自定義實現並將它們與客戶端關聯起來。問題是GetAssemblies會停止返回客戶端的自定義程序集,即使該庫仍保留在bin文件夾中。將dll從bin中移出,並回到它將解決問題大約一個星期,直到它再次發生爲止
*什麼*不再使用自定義實現?你的代碼?你的意思是GetAssemblies()調用不會返回你認爲應該返回的程序集?這個問題沒有很清楚的描述。 – Cheeso 2010-03-23 19:41:20
我們的服務使用服務工廠來根據客戶端調用代碼來發布自定義實現。如果沒有自定義實現,我們發佈默認實現。我們使用GetAssemblies來檢查裝配了一個屬性的程序集,該屬性將它們指定爲自定義實現並將它們與客戶端關聯起來。問題是GetAssemblies會停止返回客戶端的自定義程序集,即使該庫仍保留在bin文件夾中。將dll從bin中移出,然後回到它將解決該問題約一週,直到它再次發生。 – 2010-03-23 21:13:50
您是否在事件日誌中收到任何錯誤或警告消息?此外,該盒子上運行的任何防病毒軟件? – SoftwareGeek 2010-03-25 02:27:34