我正在为我的MVC3网络应用程序使用ACS身份验证。它在我的本地计算机上工作得很好。但是当我将其上传到Azure时。我收到此错误。我设置CopyLocal = True,请帮助
Unable to find assembly 'Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Runtime.Serialization.SerializationException: Unable to find assembly 'Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
答案 0 :(得分:6)
有关此内容的更多信息。复制本地,即。确保Microsoft.IdentityModel.dll位于bin目录中,除非您的代码使用RoleEnvironment API,否则它将起作用。如果是这种情况,那么您将遇到以下已知问题:
http://msdn.microsoft.com/en-us/library/windowsazure/hh403974.aspx
在这种情况下,Microsoft.IdentityModel将需要存在于Azure VM的GAC中。要完成此任务,请使用启动任务。这篇文章描述了实现这个目标的两种方法:
http://blogs.infosupport.com/adding-assemblies-to-the-gac-in-windows-azure/
答案 1 :(得分:3)
我为微软工作。我们已经删除了hh403974.aspx上的这篇文章因为命中率低,但我发现它仍然会从这个帖子中获得一些推荐,所以我将粘贴下面文章的内容。
无法在调用RoleEnvironmentAPI时查找程序集“Microsoft.IdentityModel”
适用于:适用于使用完整IIS Web角色和Windows Identity Foundation的SDK1.3及更高版本。
症状:第一次调用RoleEnvironment方法时遇到以下异常。
[SerializationException:无法找到程序集'Microsoft.IdentityModel,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'。]
原因:Windows Identity Foundation程序集未正确安装到Azure虚拟机。
解决方案:使用启动任务在虚拟机上重新安装Windows Identity Foundation package。
有关使用启动任务的详细信息,请参阅Azure中的Run Startup Tasks。
答案 2 :(得分:1)
您的Azure计算机可能缺少WIF runtime。