我一直在为我正在开发的项目实施RSA安全性。
我没有将客户端配置文件用于任何程序集目标.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,并重新编译。它似乎现在一直工作(仍在测试这部分),但是连接到IIS进程的CTRL-ALT-P仍会导致WcfSvcHost错误弹出,然后我才能真正附加到进程......其他一切似乎都在工作
任何人都有任何想法为什么这个错误不断出现?当一切似乎都有效时,为什么会弹出这个错误?
答案 0 :(得分:0)
我想我几乎立刻就找到了答案。在检查项目链中的每个AssemblyInfo.cs文件后,我在我的SqlMembershipProvider程序集中找到了这个:
[assembly: AssemblyCulture("EN-us")]
我删除了值,因此它是一个空字符串。
我在几个月前工作的另一个项目中遇到了一个非常类似的问题,该网站填写了该网站,并且该网站在第一次加载时工作,但此后的每次加载都失败了一个非常神秘的错误, ,向下钻取后,发现它无法加载程序集,给出了FileNotFoundException。
我不知道为什么这个微小的,简单的属性会引起如此多的麻烦......
编辑:我99%肯定这就是它。当我附加到我的IIS进程时,我不再收到WcfSvcHost错误。