9

将目标框架从 4.5.1 更改为 4.6 后,Auzure Fail 中的服务,本地部署工作正常。

我需要添加 .Net 4.6 支持吗?- 我无法找到可以在 Azure 集群中看到可用框架的位置。

谢谢

应用程序名称:结构:/Lending20.Service.IdentityManagement AggregatedHealthState
:错误 UnhealthyEvaluations:不健康的服务:100% (1/1),ServiceType='IdentityManagementServiceType',MaxPercentUnhealthyServices=0%。

不健康的服务:ServiceName='fabric:/Lending20.Service.IdentityManagement/Identity ManagementService',AggregatedHealthState='Error'。

不健康分区:100% (1/1),MaxPercentUnhealthyPartitionsPerService=0%。

不健康的分区:PartitionId='7c68b397-fda3-491d-9e17-921cd24217ca', AggregatedHealthState='Error'。

错误事件:SourceId='System.FM',Property='State'。

ServiceHealthStates:ServiceName:fabric:/Lending20.Service.IdentityManagement/IdentityManagementService AggregatedHealthState:错误

DeployedApplicationHealthStates:ApplicationName:fabric:/Lending20.Service.IdentityManagement NodeName:_lending1 AggregatedHealthState:OK

HealthEvents:SourceId:System.CM 属性:状态 HealthState:Ok SequenceNumber:3464 SentAt:11/21/2015 12:38:08 PM ReceivedAt:11/21/2015 12:38:08 PM TTL:无限说明:应用程序已创建的。RemoveWhenExpired : False IsExpired : False 过渡 : 警告-> OK = 11/21/2015 12:38:

4

6 回答 6

17

您可以使用以下 ARM 模板来安装 .NET 4.6.1。请注意,它依赖于此脚本(由 Service Profiler 使用)。您还可以将其替换为任何其他 PowerShell 脚本。

参数是节点的基本名称。因此,如果集群中有 VM0、.. VM5,则应设置 vmName = 'VM'。vmExtensionLoop设置为 5 个节点;你当然也可以改变它。

如果您使用 ARM 模板来部署集群,则可以将其作为其中的一部分。请注意,它可能会减慢规模集的部署,因为它需要重新启动。

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vmName": {
      "type": "string",
      "metadata": {
        "description": "Virtual machine name."
      },
    }
  },
  "resources": [
    {
      "apiVersion": "2015-05-01-preview",
      "type": "Microsoft.Compute/virtualMachines/extensions",
      "name": "[concat(parameters('vmName'),copyIndex(0), '/CustomScriptExtensionInstallNet461')]",
      "location": "[variables('location')]",
      "tags": {
        "displayName": "CustomScriptExtensionInstallNet461"
      },
      "properties": {
        "publisher": "Microsoft.Compute",
        "type": "CustomScriptExtension",
        "typeHandlerVersion": "1.4",
        "autoUpgradeMinorVersion": true,
        "settings": {
          "fileUris": [ "https://gist.githubusercontent.com/aelij/7ea90dda4a187a482584/raw/a3e0f946d4a22b0af803edb503d0a30a263fba2c/InstallNetFx461.ps1" ],
          "commandToExecute": "powershell.exe -ExecutionPolicy Unrestricted -File InstallNetFx461.ps1"
        }
      },
      "copy": {
        "name": "vmExtensionLoop",
        "count": 5
      }
    }
  ]
}
于 2015-12-11T11:09:22.223 回答
5

Azure 中使用的默认 Windows Server 2012 映像中尚不提供 .NET 4.6。此时,您唯一的选择是登录每个 VM 并安装它。

于 2015-11-22T03:18:08.587 回答
3

使用 windows Server 2016 镜像获取 .net 4.6.1。预装。配置集群时的 vmImageSku:"2016-Datacenter"。

于 2017-02-09T13:16:32.983 回答
0

在 Azure 原生支持 4.6 之前,我会使用预安装了 .NET 4.6 的自定义 VM 映像。有关如何创建和使用的详细信息,请参阅本文。

于 2016-06-09T16:00:33.093 回答
0

现在 .NET 4.6 及更高版本在 SDK 2.5.216 和 Runtime 5.5.216 版本中可用

有关更多详细信息,请参阅:https ://azure.microsoft.com/en-us/blog/announcing-azure-service-fabric-5-5-and-sdk-2-5/

于 2017-04-04T21:00:43.500 回答
0

另一种选择是使用包含 DSC 扩展的 azure 资源组模板来配置您的 VM 以安装 .net 46。这是我的 dsc powershell 中的片段,用于处理.net 461 代码的安装或更完整脚本的要点

于 2015-12-08T21:26:07.080 回答