簡體   English   中英

函數“FunctionName”的偵聽器無法在 .net core azure 中啟動

[英]The listener for function 'FunctionName' was unable to start in .net core azure

該應用程序使用模擬器在我的本地完美運行。 但是當我部署到 azure 進行測試時,我在日志中收到此錯誤。 我只有一個功能是時間觸發器。

[10/12/2021 02:32:22 > 79e06d: INFO] 函數“DoWork”的監聽器無法啟動。 [10/12/2021 02:32:22 > 79e06d: INFO] Microsoft.Azure.WebJobs.Host.Listeners.FunctionListenerException:函數“DoWork”的偵聽器無法啟動。 [10/12/2021 02:32:22 > 79e06d: INFO] ---> System.Threading.Tasks.TaskCanceledException:任務被取消。 [10/12/2021 02:32:22 > 79e06d: INFO] 在 Microsoft.Azure.Storage.Core.Executor.Executor.ExecuteAsync[T](RESTCommand`1 cmd,IRetryPolicy 策略,OperationContext operationContext,CancellationToken 令牌)

我的應用設置中有這些

"AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet",

如果您使用本地虛擬化存儲模擬器,那么您的連接字符串是正確的。

{
    "AzureWebJobsStorage": "UseDevelopmentStorage=true", 
    "FUNCTIONS_WORKER_RUNTIME": "dotnet"
}

如果您的防火牆限制功能訪問存儲帳戶,則可能會報告此錯誤。 防火牆是監聽器無法訪問虛擬存儲模擬器的原因之一。

在本地運行該函數時,除http觸發器之外的所有觸發器都需要使用存儲模擬器。 如果防火牆限制偵聽器對虛擬存儲的訪問,則在執行功能時可能會出現問題。 這就是為什么使用 http 觸發器不會出錯的原因,因為它不使用虛擬存儲模擬器。

嘗試禁用防火牆,看看是否可以解決問題,在 cmd 中嘗試以下語句以檢查狀態

"%programfiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe" status

如果返回 false,請輸入以下命令以啟動存儲模擬器:

"%programfiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe" init
"%programfiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe" start

這種類型的問題通常是由三個原因造成的。

  1. 連接字符串錯誤阻止連接,
  2. 防火牆已設置
  3. 有些服務沒有開啟。 嘗試將相同的代碼復制到不同的位置。

安裝並運行 Azure 存儲模擬器 5.2 或更高版本。 使用真實的 Azure 存儲連接字符串更新 local.appsettings.json 文件。

 {
    "AzureWebJobsStorage": "copy the string in the config function on azure",           
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM