Ich habe einen WebJob:WebJob Zugriff auf falsche Behälter
public class StandardizeFileFunction : FunctionBase
{
public static async Task StandardizeFile([BlobTrigger("foobar/Raw/{blobName}")] Stream input, string blobName)
{ ... }
}
Die AzureWebJobsDashboard und AzureWebJobsStorage Verbindungszeichenfolgen zu Azure Punkt, aber ich bin lokal im Debug-Modus ausgeführt wird.
In der Vergangenheit wurde der Blob-Trigger eingerichtet, um gegen "foo/Raw/{BlobName}" und "foo2/Raw/{BlobName}" zu arbeiten, aber ich habe seitdem einen sauberen Build und löschte die Bin und Obj Verzeichnisse. Trotzdem sehe ich immer noch, dass der WebJob neben dem neuen Container auf die alten Container zugreift.
StandardizeFileFunction.StandardizeFile
Job host started
Executing 'StandardizeFileFunction.StandardizeFile' (Reason='New blob detected: foo/Raw/Study/062014.txt', Id=98c90b27-b1b4-464a-898c-8d9137c564a1)
Exception while executing function: StandardizeFileFunction.StandardizeFile
Executing 'StandardizeFileFunction.StandardizeFile' (Reason='New blob detected: foo2/Raw/Study/Temperature/HF732 1310-Room-3.txt', Id=90060f17-9a6f-47f2-a09d-b39784f5152f)
Microsoft.Azure.WebJobs.Host.FunctionInvocationException: Exception while executing function: StandardizeFileFunction.StandardizeFile ---> System.InvalidOperationException: Exception binding parameter 'blobName' ---> System.InvalidOperationException: Binding data does not contain expected value 'blobName'.
at Microsoft.Azure.WebJobs.Host.Bindings.Data.ClassDataBinding`1.BindAsync(BindingContext context)
at Microsoft.Azure.WebJobs.Host.Triggers.TriggeredFunctionBinding`1.<BindCoreAsync>d__8.MoveNext()
--- End of inner exception stack trace ---
Warum es nicht halten den Zugriff auf die alten Container und wie verhindere ich es: Im unten, werden Sie für foobar einrichten trotz der Funktion zugegriffen foo und foo2 Container werden wird sehen, dass?
UPDATE Ich habe dies mit einem neuen WebJob-Projekt neu erstellt. Hier ist, was ich getan habe:
- Verwenden Azure Storage Explorer
- Run Hunderte von Dateien zu Container „foo“ hinzufügen die WebJob (es braucht nichts zu tun)
- Nach ein paar Dutzend Blobs sind stoppen verarbeitet, die WebJob
- ändern der Containername in der Blob-Trigger (wie „fooed“ oder „ABCDE“)
- Führen Sie das WebJob
- an dieser Stelle Fehler auftreten können, wenn nicht, halten zurück~~POS=TRUNC und zwischen "foo" und "fooed" bis du es tust.
Warum sollte es von "foo/foo2" ausgelöst werden, wenn der Blob-Trigger auf "foobar/Raw" gesetzt ist? –
AFAIK, bevor das Web-Job-Programm ausgeführt wird, erstellt das VS das Projekt nach Ihrem Code. Wenn Ihr Code geändert wird, wird das Ergebnis geändert. Da wir Ihren Code nicht haben, konnten wir Ihren Fehler nicht reproduzieren. Ich schlage vor, Sie könnten mehr Details über Ihr Webjob-Projekt und den FunctionBase-Klassencode posten. Wenn möglich, könnten Sie Ihr gesamtes Webjob-Projekt auf dem Onedrive teilen. Ich werde es auf meinem Computer testen. Dies wird uns helfen, Ihr Problem zu reproduzieren und die Lösung zu finden. –
Ich konnte die Fehler in einem neuen WebJobs-Projekt erhalten. Ich habe das Q mit einer Repro aktualisiert. –