【发布时间】:2017-09-26 01:06:26
【问题描述】:
我有一个 Azure 函数,它通过 IBinder 访问通知中心,如下所示:-
public static async Task Run(string msg, IBinder binder, TraceWriter log)
{
var genericInputMessage = JsonConvert.DeserializeObject<GenericInputMessage>(msg);
string devicetag = "deviceid:" + genericInputMessage.device;
var attribute = new NotificationHubAttribute
{
ConnectionStringSetting = "NotificationHubConnection",
HubName = "NotificationHubName",
TagExpression = devicetag
};
IAsyncCollector<Notification> notifications = binder.Bind<IAsyncCollector<Notification>>(attribute);
...
...
}
当通过 Azure 门户完成时,这可以编译并正常工作。
当我在使用 VS2017(版本 15.3.3)的预编译 Azure 函数中使用相同的代码并在本地运行它时,我在调用 binder.Bind 时遇到异常。
给出的例外是....
[23/09/2017 16:47:07] A ScriptHost error has occurred
[23/09/2017 16:47:07] Exception while executing function: DataProcessor. Microsoft.Azure.WebJobs.Host: No binding found for attribute 'Microsoft.Azure.WebJobs.NotificationHubAttribute'.
我预编译的Azure函数代码如下:-
public static async Task Run([EventHubTrigger("EventHubName", Connection = "EventHubConnection")]string msg, IBinder binder, TraceWriter log)
{
var genericInputMessage = JsonConvert.DeserializeObject<GenericInputMessage>(msg);
string devicetag = "deviceid:" + genericInputMessage.device;
var attribute = new NotificationHubAttribute
{
ConnectionStringSetting = "NotificationHubConnection",
HubName = "NotificationHubName",
TagExpression = devicetag
};
IAsyncCollector<Notification> notifications = binder.Bind<IAsyncCollector<Notification>>(attribute);
...
...
}
我正在使用以下 NuGet 包:-
关于什么可能导致这种情况的任何想法?
【问题讨论】:
-
根据您的描述,我可以在本地重现此问题。我找到了一个类似的issue,你可以参考一下。
标签: azure azure-functions