2012-07-21 70 views
1

我已经在Windows 8发布预览中使用visual studio 2012 RC创建了ASP.NET MVC 4应用程序。我下载并安装了WIF工具包,并使用解决方案菜单中的“身份和访问”选项来添加我的访问控制服务元数据端点。本地测试,一切都很好。当我部署到我的免费蔚蓝的网站,但是我得到了黄屏说访问控制服务和Azure网站无法加载System.IdentityModel.Services

“无法加载文件或程序集System.IdentityModel.Services, 版本= 4.0.0.0,文化=中性公钥= b77a5c561934e089'或 其依赖项之一。系统找不到指定的文件。“

这些程序集未在项目中引用,因此我添加了它们,发送到输出到bin文件夹并重新部署。然后我收到了有关该组件可能被篡改的消息。有谁知道如何克服这个问题?

编辑 添加本地导致此错误

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

在web配置的模块deinfed为

<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

尝试引用这些程序集并将它们标记为“Copy local = true”,然后重新部署该项目。 – astaykov 2012-07-21 22:00:04

+0

是的我试过了,它说该程序集可能已被篡改 – Dylan 2012-07-21 22:16:03

回答

1

System.identityModel.Services是一个不带.NET Framework 4.0版本的.NET Framework 4.5 namespace。 Windows Azure网站不支持.NET Framework 4.5。

+0

谢谢。我在VS 2012中将解决方案定位为.NET 4,但我想它忽略了它。我可能会在Win 7中将其设置在VS 2010中,然后导入它。 – Dylan 2012-07-22 00:43:36

1

我觉得这是在Azure中的已知问题,你需要使用运行gacutil.exe的启动脚本来注册IdentityModel.dll。

这里按照以下步骤:http://blogs.infosupport.com/adding-assemblies-to-the-gac-in-windows-azure/

编辑:
我不好,我还以为你在谈论一个Web角色。正如astaykov所说,你不能在网站上启动任务。那么也许这会帮助别人:-)

+0

问题是关于Azure WebSites,而不是Azure WebRole! Azure WebSites中没有任何启动任务,也没有在GAC中拥有任何选项的选项! – astaykov 2012-07-21 21:57:58

1

所以,你需要明确地添加Idendity程序集作为你的Web应用程序项目的引用,然后明确地将他们的“Copy Local”属性设置为“True”,然后按照这MSDN forums thread和使用this session token handler。通读blog post

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

+0

出于兴趣是你使用Win 7或8,以及哪个版本的Visual Studio。我遵循了这些步骤,但仍然得到了篡改错误。我在想这可能是由Win8 – Dylan 2012-07-21 22:51:58

+0

Win7 permium x64,.net 4.0,mvc3引起的.net 4.5的问题。 – astaykov 2012-07-22 20:51:32