C# Azure REST API-通过编程在elasticPoll中创建数据库
我需要通过编程在elasticPoll中创建一个数据库 为此,我正在使用API版本2014-04-01,如“Azure REST API>SQL数据库>数据库>”所示 我创建一个新的HttpWebRequest对象并启动.create()方法 并编译属性:C# Azure REST API-通过编程在elasticPoll中创建数据库,c#,json,azure,C#,Json,Azure,我需要通过编程在elasticPoll中创建一个数据库 为此,我正在使用API版本2014-04-01,如“Azure REST API>SQL数据库>数据库>”所示 我创建一个新的HttpWebRequest对象并启动.create()方法 并编译属性: request.Headers["Authorization"] = "Bearer" + token; request.ContentType = "application/json; charset = utf-8"; request.M
request.Headers["Authorization"] = "Bearer" + token;
request.ContentType = "application/json; charset = utf-8";
request.Method = "PUT"
我创建了一个新的StreamWriter对象
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
streamWriter.Write(json);
streamWriter.Flush();
//streamWriter.Close();
}
以及.Write()mothod参数,指定“Databases-Create或Update”示例中所示模型的完整Json代码,如下所示
string json =
"{" +
"\"parameters\": {" +
"\"subscriptionId\": \"" + VariabiliGlobali.SubscriptionID + "\"," +
"\"resourceGroupName\": \"" + VariabiliGlobali.ResourceGroup + "\"," +
"\"serverName\": \"" + VariabiliGlobali.SqlServerName + "\"," +
"\"databaseName\": \"" + databaseName + "\"," +
"\"api-version\": \"" + VariabiliGlobali.APIVersion + "\"," +
"\"parameters\": {" +
"\"properties\": {" +
"\"elasticPoolName\": \"" + elasticPoolName + "\"" +
"}," +
"\"location\": \"West Europe\"" +
"}" +
"}," +
"\"responses\": {" +
"\"200\": {" +
"\"body\": {" +
"\"id\": \"/subscriptions/" + VariabiliGlobali.SubscriptionID + "/resourceGroups/" + VariabiliGlobali.ResourceGroup + "/providers/Microsoft.Sql/servers/" + VariabiliGlobali.SqlServerName + "/databases/" + databaseName + "\"," +
"\"name\": \"" + databaseName + "\"," +
"\"type\": \"Microsoft.Sql/servers/databases\"," +
"\"location\": \"West Europe\"," +
"\"kind\": \"v12.0,user\"," +
"\"properties\": {" +
"\"edition\": \"Standard\"," +
"\"status\": \"Online\"," +
"\"serviceLevelObjective\": \"S0\"," +
"\"collation\": \"SQL_Latin1_General_CP1_CI_AS\"," +
"\"creationDate\": \"2017-02-24T22:39:46.547Z\"," +
"\"maxSizeBytes\": \"268435456000\"," +
"\"currentServiceObjectiveId\": \"f1173c43-91bd-4aaa-973c-54e79e15235b\"," +
"\"requestedServiceObjectiveId\": \"f1173c43-91bd-4aaa-973c-54e79e15235b\"," +
"\"requestedServiceObjectiveName\": \"S0\"," +
"\"sampleName\": null," +
"\"defaultSecondaryLocation\": \"Japan West\"," +
"\"earliestRestoreDate\": \"2017-02-10T01:52:52.923Z\"," +
"\"elasticPoolName\": null," +
"\"containmentState\": 2," +
"\"readScale\": \"Disabled\"," +
"\"failoverGroupId\": null" +
"}" +
"}" +
"}," +
"\"201\": {" +
"\"body\": {" +
"\"id\": \"/subscriptions/" + VariabiliGlobali.SubscriptionID + "/resourceGroups/" + VariabiliGlobali.ResourceGroup + "/providers/Microsoft.Sql/servers/" + VariabiliGlobali.SqlServerName + "/databases/" + databaseName + "\"," +
"\"name\": \"" + databaseName + "\"," +
"\"type\": \"Microsoft.Sql/servers/databases\"," +
"\"location\": \"West Europe\"," +
"\"kind\": \"v12.0,user\"," +
"\"properties\": {" +
"\"edition\": \"Standard\"," +
"\"status\": \"Online\"," +
"\"serviceLevelObjective\": \"S0\"," +
"\"collation\": \"SQL_Latin1_General_CP1_CI_AS\"," +
"\"creationDate\": \"2017-02-24T22:39:46.547Z\"," +
"\"maxSizeBytes\": \"268435456000\"," +
"\"currentServiceObjectiveId\": \"f1173c43-91bd-4aaa-973c-54e79e15235b\"," +
"\"requestedServiceObjectiveId\": \"f1173c43-91bd-4aaa-973c-54e79e15235b\"," +
"\"requestedServiceObjectiveName\": \"S0\"," +
"\"sampleName\": null," +
"\"defaultSecondaryLocation\": \"Japan West\"," +
"\"earliestRestoreDate\": \"2017-02-10T01:52:52.923Z\"," +
"\"elasticPoolName\": null," +
"\"containmentState\": 2," +
"\"readScale\": \"Disabled\"," +
"\"failoverGroupId\": null" +
"}" +
"}" +
"}," +
"\"202\": { }" +
"}" +
"}";
启动HttpWebRequest对象的.GetResponse()方法
var httpResponse = (HttpWebResponse)request.GetResponse();
作为响应,我得到以下错误:
{'Error': {"code": "InvalidRequestContent", "message": "The request content was invalid and could not be deserialized: 'Could not find member' parameters on object of type 'ResourceDefinition' , Line 1, position 14. '. "}}
我错在哪里
提前谢谢。我认为文档不正确。正确的请求有效负载应为:
{"properties": {"elasticPoolName": "XXXXX"},"location": "West Europe"}
您的JSON应该只有
参数
,而不是响应
。请尝试删除请求JSON中除参数以外的所有内容好吗?@GauravMantri谢谢。我尝试使用这个JSON{“parameters”:{“subscriptionId”:“XXXXXXXX-XXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX”,“resourceGroupName”:“XXXXXXX”,“serverName”:“XXXXXXX”,“databaseName”:“XXXXXXX”,“api版本”:“2014-04-01”,“parameters”:{“properties”:{“elasticPoolName”:“xxxxxx”},“location”:“West Europe”},}
但我回答了以下错误:{“error”:{“code”:“InvalidRequestContent”,“message”:“请求内容无效,无法反序列化:'在'ResourceDefinition'类型的对象上找不到成员'parameters'。路径'parameters',第1行,位置14'。}
我认为文档不正确。请尝试使用以下JSON:{“属性”:{“elasticPoolName”:“XXXXX”},“位置”:“西欧”}
?它可以工作!非常感谢。
{"properties": {"elasticPoolName": "XXXXX"},"location": "West Europe"}