[英]Interract with a console application from Umbraco
我在本地主機上安裝了Umbraco(v4.7)網站。
每次發布umbraco節點時,我都需要執行一個操作(例如,將日志記錄到控制台或文件中)。
因此,我需要從Umbraco網站與外部應用程序(例如控制台或Windows服務)進行交互...
我不需要使用控制台應用程序來操作umbraco網站,而是通過控制台(或windos servie)應用程序操作來響應umbraco事件。
我有
public class ContentEvents : umbraco.BusinessLogic.ApplicationBase
{
void PlumbEvents()
{
// ...
Document.AfterPublish += new Document.PublishEventHandler(
Document_AfterPublish);
// ...
}
void Document_AfterPublish(Document sender, PublishEventArgs e)
{
// HERE I NEEDD TO CALL BY EG
// "MyExternalApplication" + "sender" as parameter
// where "MyExternalApplication" could be
// a ConsoleApplication or a WindowsService
}
// ...
}
是否可以從該代碼中調用外部內容?
您嘗試做的事實際上是不可能的。 相反,您要做的是使用可以從umbraco應用程序觸發的某種偵聽器創建單獨的應用程序。
每當有動作發生時,事件就會在umbraco內部引發,您可以創建自定義代碼來觸發這些事件(例如您的示例)。 如果您做的事情很簡單(例如將已發布的節點記錄到日志文件中),建議您直接在umbraco Web流程中針對特定事件進行操作,而不要使事情復雜化。
但是,如果您真的需要做一些更高級的操作,而這是您在umbraco流程中無法完成的,那么我建議您編寫一個監聽事件的應用程序,然后通過點擊該應用程序內的網絡服務(或其他方法)來連接到該應用程序/觸發事件與此類似),使用umbraco事件處理程序。
您也許可以進行一些進程間調用來實際實現您最初要求的功能,但是我要說的是麻煩多於其應有的價值。 Web服務/ http偵聽器解決方案還允許您將應用程序與運行umbraco實例的Web服務器分開,以防您需要在兩台單獨的計算機上運行該應用程序。
另一種方法是將事件放在umbraco外部的消息隊列中,然后從您自己的應用程序監視此消息隊列。 我不確定您的解決方案應該有多高級,但這可能超出范圍!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.