Reputation: 10729
So I have an Azure Web app, it's an ASP.NET MVC app with Entity Framework. It uses an Azure SQL database. I need to periodically (once a day) poll to financial market rate numbers and insert it int the database. I created two WebJobs for the two market rate polls (one needs to run after market open, the other is after market close), and scheduled them.
For testing I'm triggering them through the Azure portal manually, and I get a following error in the logs:
[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
I cannot make a sense of this. The SQL Azure database is kinda normal one, some of the tables have blob columns, but not the MarketRates table. The code which tries to access the database:
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();
Upvotes: 1
Views: 461
Reputation: 24569
"Storage account is of unsupported type 'Blob-Only/ZRS'. Supported types are 'General Purpose'?
It seems that you are use the blob storage account with Azure webjob. Please have to try to change AzureWebJobsStorageconnection string another General Purpose storage account connection.
Additionally fill the AzureWebJobsDashboard
and AzureWebJobsStorage
connection strings with the General Purpose storage account's connection string at the beginning of your app.settings
of your WebJob.
Upvotes: 1