【发布时间】:2017-08-06 21:28:39
【问题描述】:
我正在使用 Windows Identity Foundation Framework 3.5。我已经将它安装在我的开发盒上,并且一切正常。我的问题是生产服务器。
有没有办法不在生产服务器上安装框架而仍然让 MVC 应用程序工作?现在我收到错误:
未解析成员 Microsoft.IdentityModel.Claims.ClaimsPrincipal,Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 的类型。
这是意料之中的,因为框架不存在,显然简单的答案是安装框架,但这不在我的控制范围内。
我尝试过的东西,将引用Microsoft.IdentityModel.dll、Microsoft.IdentityModel.WindowsTokenService.dll、Microsoft.IdentityModel.resources.dll和Microsoft.IdentityModel.WIndowsTokenService.resources.dll直接添加到项目中,并将它们设置为复制到输出目录。这不起作用。
有什么建议吗?
【问题讨论】:
-
您是否仔细检查过引用是否指向您项目中的 dll?当您部署到服务器时,dll 是否仍然存在于正确的位置?这是什么服务器 - 2003 / 2008 / 2012?服务器上的框架是什么版本?
-
感谢您的回复。是的,引用是对项目内部的 dll 的引用。我无法直接访问部署框,因此我无法验证部署后的 DLL 是否位于正确的位置,但我现在正在努力验证这一点。我不知道服务器的 Windows 版本,但我猜是 2008 年。同样,这台服务器对我来说是一个黑匣子,所以我目前知道框架版本。可悲的是,我在努力尝试“修复”错误,但对部署框的可见性为零。
-
基本上,我问的问题的要点是,是否需要包含任何其他 DLL 以使 Windows Identity Framework 能够“工作”。
-
您需要的 WIF 文件(您可能已经知道)位于 C:\Program Files\Reference Assemblies\Microsoft\Windows Identity Foundation\v3.5。缺少的类型在您已经拥有的 Microsoft.IdentityModel.dll 中。
-
@user959729 你愿意启发我们其他人吗?