尝试将Azure功能应用程序连接到Azure Cosmos数据库表时出错400

时间:2017-11-13 19:03:51

标签: c# azure azure-storage azure-cosmosdb azure-functions

我正在尝试从功能应用程序连接到azure CosmosDB表。

我收到错误

  

远程服务器返回错误:(400)错误请求。

尝试从visual studio中的示例c#项目执行相同的连接时,它可以正常工作。

代码段:

string connectionString = ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString;           
CloudStorageAccount storageAccount = CreateStorageAccountFromConnectionString(connectionString);

CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
CloudTable table = tableClient.GetTableReference("People");

table.CreateIfNotExists();

连接字符串是:

  

DefaultEndpointsProtocol = https和帐户名=数字签名的分贝; AccountKey = XXX ==; TableEndpoint = https://digital-signature-db.documents.azure.com

完整错误堆栈:

  

执行函数时出现异常:Functions.SignPDF   Microsoft.Azure.WebJobs.Host.FunctionInvocationException:执行函数时出现异常:Functions.SignPDF ---> System.AggregateException:发生一个或多个错误。 --->远程服务器返回错误:(400)错误请求。 --->远程服务器返回错误:(400)错误请求。      在C:\ projects \ azure-webjobs-sdk-script \ src \ WebJobs.Script \ Description \ DotNet \ DotNetFunctionInvoker.cs中的Microsoft.Azure.WebJobs.Script.Description.DotNetFunctionInvoker.GetTaskResult(任务任务)中:453      在Microsoft.Azure.WebJobs.Script.Description.DotNetFunctionInvoker。<> c.b__26_0(任务t)位于C:\ projects \ azure-webjobs-sdk-script \ src \ WebJobs.Script \ Description \ DotNet \ DotNetFunctionInvoker。 cs:276      at System.Threading.Tasks.ContinuationResultTaskFromTask 1.InnerInvoke() at System.Threading.Tasks.Task.Execute() at async Microsoft.Azure.WebJobs.Script.Description.DotNetFunctionInvoker.InvokeCore(Object[] parameters,FunctionInvocationContext context) at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Description\DotNet\DotNetFunctionInvoker.cs : 276 at async Microsoft.Azure.WebJobs.Script.Description.FunctionInvokerBase.Invoke(Object[] parameters) at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Description\FunctionInvokerBase.cs : 90 at async Microsoft.Azure.WebJobs.Host.Executors.VoidTaskMethodInvoker 2.InvokeAsync [TReflected,TReturnType](TReflected instance,Object [] arguments)      at async Microsoft.Azure.WebJobs.Host.Executors.FunctionInvoker`2.InvokeAsync [TReflected,TReturnValue](Object instance,Object [] arguments)      at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.InvokeAsync(IFunctionInvoker invoker,ParameterHelper parameterHelper,CancellationTokenSource timeoutTokenSource,CancellationTokenSource functionCancellationTokenSource,Boolean throwOnTimeout,TimeSpan timerInterval,IFunctionInstance instance)      at async Microsoft.Azure.WebJobs.Host.Ex ...

请建议。

1 个答案:

答案 0 :(得分:0)

CreateIfNotExists来电需要WindowsAzure.Storage-PremiumTable的引用。在控制台应用中引用时,它会将Microsoft.WindowsAzure.Storage.dll替换为版本1.0.9.1。目前,Azure功能不支持此功能。请在此问题上向CosmosDB团队提出问题。我们在https://github.com/Azure/azure-webjobs-sdk-script/issues/2026#issuecomment-343910660

处跟踪此问题