Разработка и настройка функций Azure с помощью службы Azure SignalR выдает сообщение об ошибке в строке подключения - PullRequest
0 голосов
/ 27 марта 2019

Вот код функции, который довольно прост:

[FunctionName("negotiate")]
        public static SignalRConnectionInfo Run(
            [HttpTrigger(AuthorizationLevel.Anonymous)]
            HttpRequest req,
            [SignalRConnectionInfo(
            ConnectionStringSetting = "Endpoint=https://myowntestserver.service.signalr.net;AccessKey=mymaskedaccesskey=;Version=1.0;",
            HubName = "tracking")]
            SignalRConnectionInfo connectionInfo)
        {            
            return connectionInfo;
        }

При запуске этого кода в Visual Studio 2017 я получаю следующее сообщение об ошибке:

[2019-03-27 15:39:14 PM] Ошибка индексации метода 'согласование'

[2019-03-27 15:39:14 PM] Microsoft.Azure.WebJobs.Host: Ошибка индексацииМетод «переговоры».Microsoft.Azure.WebJobs.Host: невозможно разрешить значение для свойства 'SignalRConnectionInfoAttribute.ConnectionStringSetting'.Убедитесь, что параметр существует и имеет допустимое значение.

local.settings.json файл выглядит следующим образом:

{
    "IsEncrypted": false,
    "Values": {
        "AzureWebJobsStorage": "UseDevelopmentStorage=true",
        "FUNCTIONS_WORKER_RUNTIME": "dotnet"
    }
}

А вот и файл host.json:

{
    "version": "2.0"
}

Файл проекта содержит следующие пакеты nuget:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AzureFunctionsVersion>v2</AzureFunctionsVersion>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="3.0.3" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.SignalRService" Version="1.0.0" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.26" />
  </ItemGroup>
  <ItemGroup>
    <None Update="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
</Project>

При всех этих конфигурациях, которые кажутся правильными, не уверен, почему мы должны получить сообщение об ошибке, которое я цитировал выше.

1 Ответ

0 голосов
/ 27 марта 2019

Проблема устранена путем обновления файла local.settings.json в следующем примере:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "AzureWebJobsDashboard": "UseDevelopmentStorage=true",
    "AzureSignalRConnectionString": "Endpoint=Endpoint=https://myowntestserver.service.signalr.net;AccessKey=mymaskedaccesskey=;Version=1.0;""
  },
  "Host": {
    "LocalHttpPort": 7071,
    "CORS": "*"
  }
}

Кроме того, SignalRConnectionInfo.ConnectionStringSetting следует удалить из атрибута.

...