我想一個Azure的功能應用程序轉換爲使用「發佈一個.NET類庫的功能應用」 blog post從唐娜Malayeri預編譯的版本。預編譯Azure的功能StorageTableInput約束力不工作
我使用的定時器觸發器具有使用類型化對象的StorageTable輸入綁定。該對象繼承自'TableEntity'。雖然在門戶網站中的版本沒有任何問題,我的預編譯的版本引發以下錯誤:
Microsoft.Azure.WebJobs.Host: Error indexing method 'Functions.ScheduleTrigger'. Microsoft.Azure.WebJobs.Host: GenericArguments[0], 'MyScheduler.Schedule', on 'Microsoft.Azure.WebJobs.Host.Tables.TableExtension+TableToIQueryableConverter`1[TElement]' violates the constraint of type 'TElement'. mscorlib: GenericArguments[0], 'MyScheduler.Schedule', on 'Microsoft.Azure.WebJobs.Host.Tables.TableExtension+TableToIQueryableConverter`1[TElement]' violates the constraint of type parameter 'TElement'.
Azure的功能代碼如下所示:
using System;
using System.Linq;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.WindowsAzure.Storage.Table;
namespace MyScheduler
{
public class ScheduleTrigger
{
public static void Run(TimerInfo scheduleTimer, Queryable<Schedule> schedulesTable, ICollector<Schedule> scheduleQueueItem, TraceWriter log)
{
log.Info($"Start processing at: {DateTime.Now}.");
// processing code here...
log.Info($"Finished processing at: {DateTime.Now}.");
}
}
public class Schedule : TableEntity
{
public string Name { get; set; }
public DateTime LastRunAt { get; set; }
public bool Active { get; set; }
public string Endpoint { get; set; }
}
}
的「function.json」文件看起來像這樣:
{
"scriptFile": "..\\bin\\MyScheduler.dll",
"entryPoint": "MyScheduler.ScheduleTrigger.Run",
"bindings": [
{
"name": "scheduleTimer",
"type": "timerTrigger",
"direction": "in",
"schedule": "0 * * * * *"
},
{
"type": "table",
"name": "schedulesTable",
"tableName": "schedules",
"partitionKey": "Schedules",
"connection": "AzureWebJobsStorage",
"direction": "in"
},
{
"type": "queue",
"name": "scheduleQueueItem",
"queueName": "schedulesqueue",
"connection": "AzureWebJobsStorage",
"direction": "out"
}
],
"disabled": true
}
你引用了什麼版本的Storage SDK? –