Создание и доступ к sqlite-DB в Azurestorage через строку подключения к хранилищу с разных серверов приложений - PullRequest
1 голос
/ 03 июля 2019

У меня есть веб-приложение для разных клиентов-БД, которое работает на нескольких серверах приложений. Каждый клиент назначается экземпляру в AS. Для некоторых клиентов определенные данные сохраняются в дополнительных базах SQLite на самих серверах приложений; Когда данные такого типа добавляются, WebApp проверяет, существует ли соответствующая база данных SQLite в этой AS, и, если нет, создает ее с помощью следующего кода:

dbFileName = "C:\\" + dbFileName;

            SQLiteConnection.CreateFile(dbFileName);

            using (System.Data.SQLite.SQLiteConnection con = new System.Data.SQLite.SQLiteConnection("data source=" + dbFileName))
            {
                using (System.Data.SQLite.SQLiteCommand com = new System.Data.SQLite.SQLiteCommand(con))
                {
                    con.Open();

Проблема в том, что, если я назначаю клиента экземпляру в другой AS, необходимо снова создать базу данных SQLite, поскольку он не может получить доступ к экземпляру в другой AS.

Теперь моя идея состояла в том, чтобы создать SQLite-dbs в некотором лазурном хранилище, где я мог бы получить к нему доступ из любой AS, но пока я не могу получить к нему доступ через SQLite-Connection.

Мне известны мои конкретные SAS (= подпись общего доступа) и строки подключения, подобные указанным в https://www.connectionstrings.com/windows-azure/ но я не уверен, какую часть я должен использовать для SQLiteConnection.

Возможно ли это вообще?

Единственные примеры подключений к Azurestorage, которые я обнаружил до сих пор, - это через HttpRequests (например, Как получить доступ к BLOB-объектам Azure с помощью SAS в C # ), которые не помогают мне или кто-нибудь может показать мне способ использовать это для моей проблемы?

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

1 Ответ

0 голосов
/ 03 июля 2019

Нельзя использовать большой двоичный объект хранилища Azure как обычную файловую систему.Источником данных в строке подключения SQLite должен быть путь к файлу или память.

Если вы хотите использовать BLOB-хранилище Azure, насколько я знаю, вы можете только смонтировать хранилище BLOB-объектов как файловую систему с blobfuse в ОС Linux .Но это не на 100% совместимо с обычными файловыми системами.

Другой вариант - использовать файл хранилища Azure, он поддерживает протокол SMB.Вы можете смонтировать сетевой драйвер и использовать его.

...