安装 WIF 运行时,用于在 Windows Azure 中托管 .NET 应用程序



我开发了一个自定义应用程序,该应用程序能够使用CRM Web服务并执行Windows Live ID身份验证,从自定义.NET页面在CRM中创建,读取和更新操作。当我在Visual Studio 2010中调试应用程序时,它运行绝对正常,但是当我部署同一应用程序并尝试进行身份验证时,它显示以下错误:

"无法加载文件或程序集'Microsoft.IdentityModel, Version=3.5.0.0, Culture=中性, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。系统找不到指定的文件。

我只是想知道如何使用启动任务安装 Microsoft.IdentityModel 程序集。我按照以下链接中的一些步骤操作:

http://blogs.msdn.com/b/sriharsha/archive/2012/04/07/windows-azure-unable-to-find-assembly-microsoft-identitymodel.aspx

但是无法将RegisterDLL.cmd添加到我的项目解决方案中。

嗯,

你可以使用Sandrino的建议,但你也可以使用这个Powershell脚本。我在几个项目中使用它,它工作正常。它还会自动识别 Windows 版本(因为对于 Azure 来宾操作系统系列 1.xx,您必须使用 Windows6.0-xxxxx,对于来宾操作系统系列 2.xx,您必须使用 Windows 6.1-xxx 版本的知识库更新)。

您可以在非常简单的启动任务中执行该 powershell 脚本。创建一个 setup.cmd 文件,其中包含以下内容:

@echo off
powershell -command "Set-ExecutionPolicy Unrestricted" 2>> err.out
powershell .Install-WIF-OnAzure.ps1 2>> err.out

并将其作为简单的启动任务运行:

 <WebRole name="AzureAndWif" vmsize="Small">
    <Startup>
      <Task commandLine="setup.cmd" executionContext="elevated" />
    </Startup>
   ...
 </WebRole>

希望这也有助于;)

"无法将 RegisterDLL.cmd 添加到我的项目解决方案"是什么意思?在Visual Studio中,只需按照以下步骤操作:

  1. 右键单击您的项目
  2. 选择">文本文件添加新项目>
  3. 输入以下代码(来自博客文章):

    @echo off
    sc config wuauserv start= demand
    wusa.exe "Windows6.1-KB974405-x64.msu" /quiet /norestart
    sc config wuauserv start= disabled
    exit /b 0
    
  4. 将文件重命名为 RegisterDLL.cmd

  5. 在属性中,将"复制到输出目录"设置为"始终复制"
  6. 转到文件>另存为。在保存按钮上,单击小箭头并选择使用编码保存
  7. 选择 Unicode(不带签名的 UTF-8) - 代码页 65001

这应该足以拥有一个工作文件。现在,按照指南的其余部分重新部署应用程序。

如果要

将其部署到Windows Azure,请确保在部署到Azure时在Microsoft.IdentityModel上将"copy local"设置为true。

-----------**更新**----------------------------

云提示 #9-使用启动任务将 Microsoft.IdentityModel 添加到 GAC

http://blogs.msdn.com/b/benko/archive/2012/04/07/cloud-tip-9-add-microsoft-identitymodel-to-the-gac-with-a-startup-task.aspx

这应该有帮助...

最新更新