2017-03-15 42 views
1

時自動啓動特定項目的Web服務,我有其中有一個Web資源設置,如下圖所示的圖像中的項目:運行的VI

Project tree snapshot

目前,如果我想TemperatureService到接受連接,我需要右鍵單擊它,然後選擇開始。這有點不方便,但更重要的是,這些工具的操作者需要額外的步驟,這可能會導致由於健忘,不知覺等引起的不希望的人爲錯誤。

因此,我希望能夠在此項目中運行某個VI時自動啓動TemperatureService。到目前爲止,我已經找到了幾個資源/教程123,但我可以收集是如何自動啓動Web服務,它是通過將以下塊的VI(做的管理界面主要Open Application Reference):

VIs needed to autostart the "global" service

...它沒有啓動該服務。我也試過Property Node的屬性設置爲Server:TCP Listener Active,但這並沒有收到預期的效果無論是。

總結:我怎麼能自動啓動特定的Web服務運行的VI是什麼時候?

我與64位運行Windows 7

+0

應該是此Web服務是獨立的或者是一個更大的應用程序的一部分?你是否打算將它部署在沒有LabVIEW的計算機上(使用Application Builder),還是隻在開發環境中運行? – nekomatic

+0

@nekomatic這應該是一個獨立的RESTful服務,它只能在開發環境中運行,作爲運行VI的一部分。爲了避免XY問題,這裏的宏偉計劃能夠揭示一些在LabVIEW中測量的值到MATLAB(運行在相同LAN上的相同或另一臺計算機上)。 –

+0

好的,根據http://zone.ni.com/reference/en-XX/help/371361M-01/lvconcepts/ws_distributing/一旦你從項目瀏覽器啓動服務,它應該保持運行,直到你再次取消發佈它即使通過系統重新啓動,所以啓動它並使其開始有問題嗎?或者,您可以通過讓VI運行自己的TCP/IP服務器(不難,請參閱LabVIEW示例)實現您的目標,因爲似乎在MATLAB中支持TCP/IP通信。或者,如果您擁有應用程序生成器,則可以在構建的應用程序中部署您的VI和服務。 – nekomatic

回答

1

LabVIEW的2015年的工作通過對NI網站下面this tutorial,我是能夠成功地創造持續退出的LabVIEW後運行一個持久的Web服務和重新啓動計算機(或至少,我運行LabVIEW的虛擬機)之後。

如本教程所述,如果通過在項目中右鍵單擊並啓動Web服務並選擇開始,該服務將在調試服務器中運行,該服務器在退出LabVIEW時終止。

但是,如果您選擇應用程序Web服務器>發佈,該服務將在LabVIEW的應用程序Web服務器中運行,並在退出LabVIEW並重新啓動計算機後繼續運行。

project window showing Publish menu

注意,應用程序的Web服務器從調試服務器在不同的端口上運行;發佈服務後,在方法VI右鍵單擊並選擇顯示方法URL ...看到正確的地址。

Method URL dialogue

如果部署失敗,錯誤Target OS for this Web service differs from the Web server configuration,確保該服務器是作爲configured for the same runtime LabVIEW開發環境(即32或64位)。

+0

謝謝 - 這是有益的建議!我還會補充說,部署可能會失敗,錯誤「此Web服務的目標操作系統與Web服務器配置不同。」。爲避免這種情況,必須確保服務器與LabVIEW開發環境配置爲相同的運行時(即32位或64位),如[此處顯示](http://digital.ni.com/public.nsf/allkb/90880283B2F833D7862577900073A2A1)。 –

+1

謝謝,我已經編輯了這個信息到答案。很高興聽到我們解決它! – nekomatic