![](/img/trans.png)
[英]How to receive data from App Settings Azure (webapp) to my webjob
[英]How to communicate from Azure webjob to Azure webapp?
我正在運行Azure webjob和Azure webapp。 作業定期運行,並且需要在webapp中完成作業。 我如何在那里得到結果?
我嘗試使用WCF netNamedPipeBinding
但由於Azure webapps沒有啟動任務,我無法將net.pipe綁定添加到IIS網站,也無法啟用net.pipe協議。
我現在使用basicHttpBinding
但這個綁定暴露給我絕對不想要的整個互聯網。 我只想在同一台機器上運行的webjob和webapp之間進行機器本地通信。
更正 :我認為我在Azure上工作但事實並非如此。 在Azure上運行時,我從webjob收到錯誤: An attempt was made to access a socket in a way forbidden by its access permissions 127.0.0.1:80
(使用basicHttpBinding
)。 可能webapp有一個我不知道的內部端口號。
你有幾個選擇:
所有這些方法的好處是它使您的消息傳遞異步,因此對兩個服務(Web應用程序或Web作業)中的一個下降一段時間更具彈性。
您可以使用文件系統在WebJob和網站之間進行通信。 它們之間以及所有實例之間共享。
只需從WebJob寫一個文件,並使用webapp中的文件系統觀察程序來識別文件的創建或更改時間。
請注意,您無法通過Azure網站(或WebJobs)中的localhost進行通信,也無法偵聽非80/443的端口。
您可以使用azure服務總線隊列,然后指向您的服務(Web應用程序)以使用隊列中的消息。
最接近的答案是在App Settings中設置WEBSITE_DISABLE_SCM_SEPARATION=true
。 這將使WebApp和SCM進程在同一個沙箱中工作。 不幸的是,Azure不推薦使用此選項,不再支持此選項。 謝謝大家嘗試答案。 更多信息可以在這里找到。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.