Почему Azure WebJob не может подключиться к Azure SQL, говоря: «Учетная запись хранилища имеет неподдерживаемый тип« Blob-Only / ZRS ». Поддерживаемые типы -« общего назначения »? - PullRequest
0 голосов
/ 26 августа 2018

Итак, у меня есть веб-приложение Azure, это приложение ASP.NET MVC с Entity Framework. Он использует базу данных SQL Azure. Мне нужно периодически (раз в день) опрашивать номера ставок финансового рынка и вставлять их в базу данных. Я создал две WebJobs для двух опросов рыночных ставок (один должен выполняться после открытия рынка, другой - после закрытия рынка) и запланировал их.

Для тестирования я запускаю их через портал Azure вручную и получаю следующую ошибку в журналах:

[08/25/2018 22:28:43 > a6e3be: ERR ] Unhandled Exception: System.InvalidOperationException: Storage account 'blabla' is of unsupported type 'Blob-Only/ZRS'. Supported types are 'General Purpose'
[08/25/2018 22:28:43 > a6e3be: ERR ]    at Microsoft.Azure.WebJobs.Host.Storage.StorageAccountExtensions.AssertTypeOneOf(IStorageAccount account, StorageAccountType[] types)
[08/25/2018 22:28:43 > a6e3be: ERR ]    at Microsoft.Azure.WebJobs.Host.Executors.DefaultStorageAccountProvider.<CreateAndValidateAccountAsync>d__24.MoveNext()
[08/25/2018 22:28:43 > a6e3be: ERR ] --- End of stack trace from previous location where exception was thrown ---
[08/25/2018 22:28:43 > a6e3be: ERR ]    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
[08/25/2018 22:28:43 > a6e3be: ERR ]    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
[08/25/2018 22:28:43 > a6e3be: ERR ]    at Microsoft.Azure.WebJobs.Host.Executors.DefaultStorageAccountProvider.<TryGetAccountAsync>d__25.MoveNext()
[08/25/2018 22:28:43 > a6e3be: ERR ] --- End of stack trace from previous location where exception was thrown ---
[08/25/2018 22:28:43 > a6e3be: ERR ]    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
[08/25/2018 22:28:43 > a6e3be: ERR ]    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
[08/25/2018 22:28:43 > a6e3be: ERR ]    at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
[08/25/2018 22:28:43 > a6e3be: ERR ]    at Microsoft.Azure.WebJobs.Host.Executors.JobHostConfigurationExtensions.<CreateJobHostContextAsync>d__1.MoveNext()
[08/25/2018 22:28:43 > a6e3be: ERR ] --- End of stack trace from previous location where exception was thrown ---
[08/25/2018 22:28:43 > a6e3be: ERR ]    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
[08/25/2018 22:28:43 > a6e3be: ERR ]    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
[08/25/2018 22:28:43 > a6e3be: ERR ]    at Microsoft.Azure.WebJobs.JobHost.<InitializeHostAsync>d__44.MoveNext()
[08/25/2018 22:28:43 > a6e3be: ERR ] --- End of stack trace from previous location where exception was thrown ---
[08/25/2018 22:28:43 > a6e3be: ERR ]    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
[08/25/2018 22:28:43 > a6e3be: ERR ]    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
[08/25/2018 22:28:43 > a6e3be: ERR ]    at Microsoft.Azure.WebJobs.JobHost.<CallAsyncCore>d__37.MoveNext()
[08/25/2018 22:28:43 > a6e3be: ERR ] --- End of stack trace from previous location where exception was thrown ---
[08/25/2018 22:28:43 > a6e3be: ERR ]    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
[08/25/2018 22:28:43 > a6e3be: ERR ]    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
[08/25/2018 22:28:43 > a6e3be: ERR ]    at Microsoft.Azure.WebJobs.JobHost.Call(MethodInfo method)
[08/25/2018 22:28:43 > a6e3be: ERR ]    at MarketRatePreviousCloseWebJob.Program.Main() in C:\Users\Csaba\Documents\BlablaSrc\MarketRatePreviousCloseWebJob\Program.cs:line 20
[08/25/2018 22:28:43 > a6e3be: SYS INFO] Status changed to Failed
[08/25/2018 22:28:43 > a6e3be: SYS ERR ] Job failed due to exit code -532462766

Я не могу понять это. База данных SQL Azure довольно обычная, некоторые таблицы имеют столбцы BLOB-объектов, но не таблицу MarketRates. Код, который пытается получить доступ к базе данных:

string connectionString = "Copy of the the Azure SQL connection string";
SqlConnection sqlConnection = new SqlConnection(connectionString);

string selectStatement = "SELECT MAX(Id) FROM BlaBla.dbo.MarketRates";
SqlCommand selectCmd = new SqlCommand(selectStatement, sqlConnection);
sqlConnection.Open();
var id = (int)selectCmd.ExecuteScalar();
sqlConnection.Close();

string insertStatement = "INSERT INTO BlaBla.dbo.MarketRates(Id, Type, Rate, Date) " +
    "VALUES(@Id, @Type, @Rate, @Date)";
SqlCommand insertCmd = new SqlCommand(insertStatement, sqlConnection);

var now = DateTime.Now;
insertCmd.Parameters.Add("@Id", SqlDbType.Int);
insertCmd.Parameters.Add("@Type", SqlDbType.VarChar, 64);
insertCmd.Parameters.Add("@Rate", SqlDbType.Float);
insertCmd.Parameters.Add("@Date", SqlDbType.DateTime);
insertCmd.Parameters["@Id"].Value = id + 1;
insertCmd.Parameters["@Type"].Value = rateType;
insertCmd.Parameters["@Rate"].Value = rate;
insertCmd.Parameters["@Date"].Value = now.Date;

sqlConnection.Open();
insertCmd.ExecuteNonQuery();
sqlConnection.Close();

1 Ответ

0 голосов
/ 27 августа 2018

"Учетная запись хранения имеет неподдерживаемый тип 'Blob-Only / ZRS'. Поддерживаемые типы: 'общего назначения'?

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

enter image description here


Дополнительно заполните строки подключения AzureWebJobsDashboard и AzureWebJobsStorage строкой подключения учетной записи хранения общего назначения в начале app.settings вашего WebJob.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...