我一直在爲我正在開發的項目實施RSA安全性。當附加到IIS7進程時,WcfSvcHost拋出LoaderException,但似乎一切正常?
- 我正在使用網上找到的SecurID4Net文件來獲得這個滾動,默認情況下它是針對.Net 2.0框架,任何CPU。
- 我創建了一個派生的SqlMembershipProvider,它引用了SecurID4Net.Interfaces項目,目標是.Net 4.0,任何CPU。
- 我的課程庫「服務」引用SqlMembershipProvider,也針對任何CPU。
- 我的web應用程序「Services.Web」引用了「Services」lib,.Net 4.0,任何CPU。
我沒有使用客戶端配置文件進行任何程序集定位.Net 4.我在這裏描述的每個參考都將Copy Local設置爲True。
我有我的本地IIS默認網站設置爲我的Web項目的輸出文件夾,所以我可以按Ctrl-Shift-B並瀏覽我的IIS文件夾。當我的客戶端應用程序第一次登錄(可能是2到3次)時,它可以正常工作,但在此之後登錄失敗。另外,附着在IIS7過程(Services.Web)的時候,我會得到以下錯誤:
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.Assembly.GetTypes()
at Microsoft.Tools.SvcHost.ServiceHostHelper.LoadServiceAssembly(String svcAssemblyPath)
它有問題加載DLL是我創建的SqlMembershipProvider。
因此,我將SecurID4Net.Interfaces項目更改爲目標.Net 4.0,並重新編譯。它似乎現在一直工作(仍在測試這部分),但CTRL-ALT-P連接到IIS進程仍然導致WcfSvcHost錯誤彈出,然後我才能真正連接到進程...其他一切似乎都在工作。
- 我以管理員身份運行我的VS,所以我可以附加到IIS進程;
- 所有描述的參考都設置爲Copy Local = true;
- 所有程序集都針對.Net 4.0完整資料;
- 所有程序集都可到達,而不會被託管該服務器的服務器的複製操作阻止;
- 據我所知web.config沒有語法問題。
任何人有任何想法,爲什麼這個錯誤不斷彈出?爲什麼會出現這個錯誤,當一切似乎工作?