Формат строки инициализации не соответствует спецификации, начиная с индекса 0 в приложении «Функции Azure»

Я много изучил эту проблему и обнаружил, что проблема связана с ConnectionString. Я использую приведенную ниже строку подключения, и она отлично работает локально в моем приложении «Функции Azure», но когда я развертываю ее в Azure. Я получаю эту ошибку:

2024-06-22T11:08:57Z   [Verbose]   Sending event Create
2024-06-22T11:08:57Z   [Verbose]   Sending exception event: Format of the initialization string does not conform to specification starting at index 0.

Для справки моя строка подключения:

Server=tcp:buzzats.database.windows.net;Initial Catalog=buzzats;Persist Security Info=False;User ID=ibraheem;Password=...;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

Я перепробовал все возможное, но не могу исправить эту ошибку. Я использую Node JS v20 в качестве среды выполнения приложения «Функции Azure». Ниже приведен пример кода одного HttpTrigger:

const { app, input } = require("@azure/functions");

const sql = input.sql({
    commandText: "SELECT * FROM [dbo].[Students]",
    commandType: "Text",
    connectionStringSetting: "SqlConnectionString",
});

app.http("getStudents", {
    methods: ["GET"],
    authLevel: "anonymous",
    extraInputs: [sql],
    handler: async (request, context) => {
        try {
            const response = await context.extraInputs.get(sql);
            return { status: 200, body: JSON.stringify(response) };
        } catch (error) {
            return { status: 200, body: error.message };
        }
    },
});

Я просмотрел весь StackOverflow, но не смог найти решения своей проблемы. Я точно следую инструкциям, указанным на сайте Microsoft здесь

Проверьте этот ТАК ответ и эту ссылку, чтобы найти то же решение ошибки.

Dasari Kamali 22.06.2024 14:13

Это моя строка подключения, хранящаяся в файле local.settings.json: "SqlConnectionString": "Server=tcp:buzzats.database.windows.net;Initial Catalog=buzzats;Persist Security Info=False;User ID=ibraheem;Password=. ...;MultipleActiveResultSets=False;Encr‌​ypt=True;TrustServer‌​Certificate=False;Co‌​Timeout=30;" Как я могу сохранить это в вашем формате?

Ibraheem Haseeb 22.06.2024 14:17

Можете ли вы поделиться скриншотом ошибки? Добавили ли вы SqlConnectionString в приложение «Функция Azure» > переменные среды?

Dasari Kamali 22.06.2024 15:13

Можете ли вы проверить и поделиться строкой SqlConnectionString в приложении-функции Azure > переменные среды?

Dasari Kamali 22.06.2024 15:20

Предоставьте более подробную информацию. Ошибка произошла из-за несоответствия строки подключения только в приложении «Функция Azure» на портале.

Dasari Kamali 22.06.2024 15:37

Я успешно запустил код как на локальном , так и на портале.

Dasari Kamali 22.06.2024 15:38

Можете ли вы поделиться снимком экрана с ошибкой в ​​вызовах функций Azure, например этот.

Dasari Kamali 22.06.2024 15:41

Я пытался получить ту же ошибку со своей стороны и получил ее после изменения значения SqlConnectionString в приложении-функции Azure > Переменные среды , добавив одинарную кавычку перед паролем. Я получил эту ошибку Журналы.

Dasari Kamali 22.06.2024 16:03
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
8
77
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Формат строки инициализации не соответствует спецификации, начиная с индекса.

Вышеупомянутая ошибка произошла из-за несоответствия значения SqlConnectionString в приложении функции Azure.

Поэтому убедитесь, что значение SqlConnectionString правильное, без каких-либо дополнительных кавычек в переменных среды приложения функции Azure > Параметры приложения, как показано ниже.

"SqlConnectionString": "Server=tcp:<server_name>.database.windows.net;Initial Catalog=<db_name>;Persist Security Info=False;User ID=<user_name>;Password=<password>;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Код:

const { app, input } = require("@azure/functions");

const sql = input.sql({
    commandText: "SELECT * FROM [dbo].[Students]",
    commandType: "Text",
    connectionStringSetting: "SqlConnectionString",
});

app.http("getStudents", {
    methods: ["GET"],
    authLevel: "anonymous",
    extraInputs: [sql],
    handler: async (request, context) => {
        try {
            const response = await context.extraInputs.get(sql);
            return { status: 200, body: JSON.stringify(response) };
        } catch (error) {
            return { status: 200, body: error.message };
        }
    },
});

Выход :

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

Я проверял несколько раз, в моей строке подключения нет дополнительных кавычек или чего-либо еще, что добавляется в переменные env приложения функций. Более того, ошибка, которую вы задаете, точно такая же, как я указал в исходном вопросе вверху. В моем пароле нет специальных символов, в нем есть только заглавные и строчные символы с некоторыми цифрами, что, я думаю, не должно вызывать эту проблему, но это так.

Ibraheem Haseeb 22.06.2024 22:59

Не могу прикрепить скриншоты в комментариях, поэтому прикрепляю сюда ссылки: строка подключения

Ibraheem Haseeb 22.06.2024 23:05

@IbraheemHaseeb Можете ли вы удалить строку подключения из переменных среды и попытаться добавить ее снова. Добавили ли вы IP-адрес приложения-функции на сервере SQL>Сеть или разрешили доступ ко всем сетям? Можете ли вы проверить и обновить его, если он не добавлен. Если ошибка не устранена, попробуйте еще раз развернуть код из VScode и проверить.

Dasari Kamali 23.06.2024 02:24

Теперь это работает, оказывается, оно добавляло строку подключения в переменную среды, однако предполагалось добавить ее в раздел строк подключения, как показано здесь

Ibraheem Haseeb 23.06.2024 17:45

Огромное спасибо за вашу помощь в решении этой проблемы, это очень серьезно значит.

Ibraheem Haseeb 23.06.2024 17:45

@IbraheemHaseeb Рад узнать, что ваша проблема решена.

Dasari Kamali 23.06.2024 18:51

Другие вопросы по теме