首页 > 解决方案 > 在超时中创建 Azure-DB 运行

问题描述

我在 Visual Basic.net 中使用以下代码来创建新的 MS Azure-DB:

Dim CONNmaster As New SqlConnection("Server=tcp:blablabla.database.windows.net,1433;Initial Catalog=master;Persist Security Info=False;User ID=[myuserid];Password=[mypassword];MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=300;")
CONNmaster.Open()
SQL = "CREATE DATABASE abc123;"
Dim CMD As New SqlCommand(SQL, CONNmaster)
CMD.ExecuteScalar()
CONNmaster.Close()

引发错误:System.Data.SqlClient.SqlException: 'Das Ausführungstimeout ist abgelaufen. Der Timeoutzeitraum wurde überschritten, bevor der Vorgang bedet wurde, oder der der Server antwortet nicht。CREATE DATABASE 操作失败。内部服务错误。

当我与

SQL = "CREATE DATABASE [abc123]  (EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_S_Gen5_1', MAXSIZE = 32 GB) WITH CATALOG_COLLATION = SQL_Latin1_General_CP1_CI_AS;"

错误保持不变(我使用 SQL Server Management Studio 创建脚本:现有数据库 -> 创建创建脚本)。

数据库似乎创建正确......我可以在 SSMS 中看到它并且可以使用它,但是上面的 create-command 会引发运行时错误(超时)。

我究竟做错了什么?我必须使用我的 vb.net 程序创建几个空数据库,以便稍后在其中创建一些表。

标签: vb.netazure-sql-database

解决方案


嗯,这似乎不是连接字符串中的超时,而是在sql命令中,不是吗?

添加一个

cmd.CommandTimeout = 300

似乎可以解决问题 - 即使超时发生在 aprox 之后。10 秒而不是 30 秒后,因为 30 是命令的默认值。


推荐阅读