1

我在 Windows 8 发布预览版上使用 Visual Studio 2012 RC 创建了一个 ASP.NET MVC 4 应用程序。我下载并安装了 WIF 工具包,并使用解决方案菜单中的“身份和访问”选项来添加我的访问控制服务元数据端点。本地测试,一切正常。当我部署到我的免费天蓝色网站时,我得到黄色屏幕说

“无法加载文件或程序集 'System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 或其依赖项之一。系统找不到指定的文件。”

这些程序集在项目中没有被引用,所以我添加了它们,发送到输出到 bin 文件夹并重新部署。然后我收到一条消息,说程序集可能被篡改了。有谁知道如何克服这个?

编辑添加本地会导致此错误

无法加载文件或程序集“System.IdentityModel.Services”或其依赖项之一。无法验证强名称签名。该程序集可能已被篡改,或者它被延迟签名但未使用正确的私钥完全签名。(来自 HRESULT 的异常:0x80131045)

在 web 配置中,模块被定义为

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules>
      <add name="WSFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
      <add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
    </modules>
  </system.webServer>

谢谢

4

3 回答 3

1

我认为这是 Azure 中的一个已知问题,您需要使用运行 gacutil.exe 的启动脚本来注册 IdentityModel.dll。

请按照此处的步骤操作:http: //blogs.infosupport.com/adding-assemblies-to-the-gac-in-windows-azure/

编辑:
我的错,我以为你在谈论网络角色。正如 asaykov 所说,您不能在网站中进行启动任务。好吧,也许这会帮助其他人:-)

于 2012-07-21T21:13:37.587 回答
1

因此,您需要将 Idendity 程序集显式添加为对 Web 应用项目的引用,然后将它们的“复制本地”属性显式设置为“真”,然后按照此MSDN 论坛线程并使用此会话令牌处理程序。通读那篇博文

按照所有步骤,您将拥有启用 WIF 的 ACS 消费应用程序,就像我刚刚在此处创建的应用程序一样:http ://wawsacs.azurewebsites.net/ (请注意,我将在 2012 年 7 月 25 日删除此网站)。

于 2012-07-21T22:17:00.340 回答
1

System.identityModel.Services 是一个.NET Framework 4.5 命名空间,没有 .NET Framework 4.0 版本。Windows Azure 网站不支持 .NET Framework 4.5。

于 2012-07-22T00:22:50.203 回答