#azure-functions
#azure-функции
Вопрос:
Я добавил следующий файл project.json в свою функцию Azure.
{
"frameworks": {
"net46":{
"dependencies": {
"Microsoft.ProjectOxford.SpeechRecognition-x86": "1.0.0.1"
}
}
}
}
Я использую простой Http-триггер и в функции есть следующий код:
using System.Net;
using Microsoft.CognitiveServices.SpeechRecognition;
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log) {
log.Info($"C# HTTP trigger function processed a request.");
var dataClient = SpeechRecognitionServiceFactory.CreateDataClient(
SpeechRecognitionMode.LongDictation,
"en-US",
"my sub key");
var resp = new HttpResponseMessage(HttpStatusCode.OK);
return resp;
}
На данный момент я просто пытаюсь создать экземпляр DataClient. Функция компилируется нормально, но при ее выполнении выдает эту ошибку.
Функции.ProcessReportAudio. mscorlib: исключение было вызвано целью вызова. mscorlib: не удалось загрузить файл или сборку ‘SpeechClient, Version = 0.0.0.0, Culture = нейтральный, PublicKeyToken = null’. Эта сборка была скомпилирована для другого процессора.
Я пробовал как x86, так и x64 версии пакета nuget и получаю ту же ошибку.
В конечном счете, я буду обрабатывать речевые файлы wav, которые были загружены в хранилище Azure, чтобы получить диктовку, но сейчас это как бы мертво в воде.
Ответ №1:
Джефф, я предполагаю, что вы начали с x64 (поскольку конфигурация приложения по умолчанию — x86).
После перехода с одной архитектуры на другую вы перезапустили свое функциональное приложение?
Можете ли вы указать, что попытка, поскольку первоначальный сбой привязки потенциально может быть кэширован, и поскольку сборки имеют одно и то же имя, это помешало бы среде выполнения пытаться загрузить ссылку после вашего изменения.