我在Windows 8发布预览版中使用visual studio 2012 RC创建了一个ASP.NET MVC 4应用程序。我下载并安装了WIF工具包,并使用解决方案菜单中的“身份和访问”选项添加我的访问控制服务元数据端点。在本地测试,一切都很好。当我部署到我的免费天蓝色网站时,我得到黄色屏幕说
“无法加载文件或程序集'System.IdentityModel.Services, Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'或 其中一个依赖项。系统找不到指定的文件。“
这些程序集未在项目中引用,因此我添加了它们,将其发送到bin文件夹并重新部署。然后我收到一条关于装配可能被篡改的消息。有谁知道如何克服这个问题?
EDIT 添加本地会导致此错误
无法加载文件或程序集“System.IdentityModel.Services”或一个 它的依赖关系。强名称签名无法验证。该 装配可能已经被篡改,或者是延迟签署但没有 使用正确的私钥完全签名。 (HRESULT的例外情况: 0x80131045)
在网络配置中,模块被取消为
<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>
由于
答案 0 :(得分:1)
我认为这是Azure中的一个已知问题,您需要使用运行gacutil.exe的启动脚本来注册IdentityModel.dll。
按照此处的步骤操作:http://blogs.infosupport.com/adding-assemblies-to-the-gac-in-windows-azure/
修改强>
我的坏,我以为你在谈论一个Web角色。正如astaykov所说,你不能在网站上有启动任务。好吧也许这会帮助其他人: - )
答案 1 :(得分:1)
因此,您需要显式添加Idendity程序集作为Web应用程序项目的引用,然后将其“Copy Local”属性显式设置为“True”,然后按照MSDN forums thread并使用this session token handler 。仔细阅读blog post。
按照所有步骤,您将启用支持WIF的ACS消费应用,就像我刚刚在此处创建的那样:http://wawsacs.azurewebsites.net/(请注意,此网站将于2012年7月25日被我删除)。
答案 2 :(得分:1)
System.identityModel.Services是.NET Framework 4.5 namespace,没有.NET Framework 4.0版本。 Windows Azure网站不支持.NET Framework 4.5。