2

次のプログラムを作成します。

using System;
using Microsoft.Azure.WebJobs;

namespace StayUpdated.Cpe.PypyFilter
{
    public class Program
    {
        public static void Main()
        {
            var jobHost = new JobHost();
            jobHost.RunAndBlock();
        }

        public static void ProcessQueue([ServiceBusTrigger("start")] String input)
        {
        }
    }
}

app.config で、次の接続文字列を追加します。

<add name="AzureWebJobsDashboard" connectionString="DefaultEndpointsProtocol=https;AccountName=cpepypywebjobstorage;AccountKey=2iCufOrnXeY/B/VJptegGXaAbEmoj1SOgiiAbunk1kDAPqhkgvcOj3NEVGqtm0363GHu/h6Fy8JfoWEpKCP2Rw==" />
<add name="AzureWebJobsStorage" connectionString="DefaultEndpointsProtocol=https;AccountName=cpepypywebjobstorage;AccountKey=2iCufOrnXeY/B/VJptegGXaAbEmoj1SOgiiAbunk1kDAPqhkgvcOj3NEVGqtm0363GHu/h6Fy8JfoWEpKCP2Rw==" />

というFunctionIndexingExceptionメッセージで例外が発生しますError indexing method 'ProcessQueue'

4

1 に答える 1

10

AzureWebJobsServiceBusこれは、接続文字列が不足していることが原因です。その接続文字列を追加するか、ServiceBusConnectionStringを介して手動で接続する必要がありますJobHostConfiguration

その例外の内部例外を見て、それがConfigurationErrorsExceptionメッセージ付きであることがわかります。

構成に必要な情報がありません。プロパティ 'Endpoint' が 'appSettings' セクション内の 'Microsoft.ServiceBus.ConnectionString' キー、または Windows Azure 構成設定の一部として定義されていることを確認してください。

残念ながら、例外メッセージに示されている指示に従うことはできません。

原因は、サービス バス接続文字列がないと、属性を正​​常に解析するためにロードする必要があるものを JobHost がロードしないためだと思いServiceBusTriggerます。

受け取ったエラーが、

ServiceBusConnectionString なしで ServiceBusTrigger を設定しようとしました。

さらに良いのは、ヒットして続行しないトリガーがあるという警告をログに記録することです。トリガーを設定したい場合がありますが、サービス バス接続文字列が常にあるとは限りません。

于 2014-10-26T06:35:34.243 に答える