我正在开发一个 ASP.NET MVC 4(RC)网站,在我的本地开发盒上运行良好。
部署到我的主机 (DiscountASP) 需要我<compilation targetFramework="4.5" />
更改为<compilation targetFramework="4.0" />
,即使我部署了 bin
该网站运行良好,直到有人登录Facebook,或尝试使用他们的Facebook帐户连接到我的网站(几乎是全部,我的会员系统主要使用Facebook),它抛出一个错误:
无法从程序集"mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"加载类型"System.Reflection.IntrospectionExtensions"。
由于它是测试版,我目前不担心将错误留在在线,您应该能够在此处在我的网站上重新创建错误。
看起来Facebook C# SDK抛出了错误,但这是SDK的错误,还是我不得不更改为4.0框架的事实?我该如何解决这个问题?
更新
据我所知,System.Reflection.IntrospectionExtensions是.net 4.5的新功能,它不在我的主机上。但是,我的项目面向 .net 4.0 框架,并且是这样部署的。在我的开发系统上它运行良好,在主机上它出错。
当我添加Facebook C# SDK参考时,我让项目面向.net 4.5(后来将项目更改为目标4.0)。
我删除了引用,确保我的项目设置为 .net 4.0,并使用 Nuget 重新安装 Facebook C# SDK。立即解决了问题。