Use VI server to start an LabVIEW executable on a remote computer ?

I have VI server starting an executable on the same computer; however, when I try to start an executable on a remote computer I get a message that the remote host refuses connection.
I think I may have to set priveleges both at the Windows (XP) and perhaps at the LabVIEW LEVEL (in the INI file ?).
Any help would be greatly appreciated.

You cannot use the TCP VI Server to start an executable remotely. Open Application Reference opens a connection to an executable that is already running.
You have to use DCOM/ActiveX to do that. See here.
LabVIEW, C'est LabVIEW

Similar Messages

  • How to start a LabVIEW executable programmatically.

    I created a LabVIEW executable and want to start it programatically from another PC.
    I know how to start LabVIEW remotely but not how to handle an application.

    If you have NT/Win2k machine, then you can launch labview built exe using DCOM. Here is example that tells you how to do that.
    http://zone.ni.com/devzone/devzoneweb.nsf/opendoc?openagent&9208517E41C2B1B18625683A000CB86E&cat=9C6DF90777E5A78206256874000FA14E
    Another one
    http://zone.ni.com/devzone/devzoneweb.nsf/opendoc?openagent&20346814BACE06BF8625683A000C3C98&cat=46E7994B7483D781862567C300662667
    A Rafiq

  • Why does MScomctl.o​cx throw a server exception in my LabVIEW executable when trying to set the ImageList?

    I am using the Microsoft Toolbar Control 6.0 (SP4) toolbar to display 32x32 pixel buttons.
    In development, this toolbar works flawlessly. Once the program is compiled, however, the function iToolbar: ImageList(putRef) sometimes gives the error "Error -2147417851 occurred at The server threw an exception. "
    This error does not alway happen, and when it doesn't happen, everything works normally.
    Anyone have an idea why this error is being generated?

    I managed to strip away my entire application and limit the problem to just the toolbar and images. Please see file included.
    If you want to play with it, you will have to make a build script. Your system will need to have activex components installed.
    Mscomctl.ocx is required.
    As I said above, this code fragment works ok in LabVIEW development mode, but occasionally fails when built into an executable. When it fails, it seems to fail many times in a row. It doesn't seem to be a timing problem because there is only one thread.
    Has anyone else out there had this problem and found a solution?
    Message Edited by terminalman90 on 08-10-2005 11:34 AM
    Attachments:
    terminalman90.zip ‏37 KB

  • Problems with a waking up a labview executable after computer hibernation?

    I am just wondering if anyone has had any problems with waking up a labview executable after hibernating a computer.  The executable was running before the computer was hibernated and it seems to have frozen not crashed after the computer was woken up.  I am using Windows 7 and Labview 2009.
    Thanks for your time.

    What is the application doing?  (if that even matters)
    If it were performing a data-acquisition hardward process then that might matter..
    I haven't experienced this problem.

  • Disable autorun feature on labview executables **has not been solved**

    Trying to disable the feature that starts your labview executable automatically when opened. I know that I could create a start button and all that jazz, but I would prefer to disable this feature if possible.
    Solved!
    Go to Solution.

    You can't disable that "feature" because that's not how applications work. An application will run as soon as it's opened. Does your web browser wait for you to press start before it starts running? That's how it works. If you don't want the VI to start its work as soon as you launch the application then you need to put it in an "idle" state as soon as it runs and it will stay there until the user presses a "start" button. I would suggest looking into a state machine design. http://zone.ni.com/devzone/cda/tut/p/id/3024

  • [Forum FAQ] How to install and configure Windows Server Essentials Experience role on Windows Server 2012 R2 Standard via PowerShell locally and remotely

    As we all know,
    the Windows Server Essentials Experience role is available in Windows Server 2012 R2 Standard and Windows Server 2012 R2 Datacenter. We can add the Windows Server
    Essentials Experience role in Server Manager or via Windows PowerShell.
    In this article, we introduce the steps to install and configure Windows
    Server Essentials Experience role on Windows Server 2012 R2 Standard via PowerShell locally and remotely. For better analyze, we divide this article into two parts.
    Before installing the Windows Server Essentials Experience Role, please use
    Get-WindowsFeature
    PowerShell cmdlet to ensure the Windows Server Essentials Experience (ServerEssentialsRole) is available. (Figure 1)
    Figure 1.
    Part 1: Install Windows Server Essentials Experience role locally
    Add Windows Server Essentials Experience role
    Run Windows PowerShell as administrator, then type
    Add-WindowsFeature ServerEssentialsRole cmdlet to install Windows Server Essentials Experience role. (Figure 2)
    Figure 2.
    Note: It is necessary to configure Windows Server Essentials Experience (Post-deployment Configuration). Otherwise, you will encounter following issue when opening Dashboard.
    (Figure 3)
    Figure 3.
      2. Configure Windows Server Essentials Experience role
    (1)  In an existing domain environment
    Firstly, please join the Windows Server 2012 R2 Standard computer to the existing domain through the path:
    Control Panel\System\Change Settings\”Change…”\Member of. (Figure 4)
    Figure 4.
    After that, please install Windows Server Essentials Experience role as original description. After installation completed, please use the following command to configure Windows
    Server Essentials:
    Start-WssConfigurationService –Credential <Your Credential>
    Note: The type of
    Your Credential should be as: Domain-Name\Domain-User-Account.
    You must be a member of the Enterprise Admin group and Domain Admin group in Active Directory when using the command above to configure Windows Server Essentials. (Figure 5)
    Figure 5.
    Next, you can type the password for the domain account. (Figure 6)
    Figure 6.
    After setting the credential, please type “Y” to continue to configure Windows Server Essentials. (Figure 7)
    Figure 7.
    By the way, you can use
    Get-WssConfigurationStatus
    PowerShell cmdlet to
    get the status of the configuration of Windows Server Essentials. Specify the
    ShowProgress parameter to view a progress indicator. (Figure 8)
    Figure 8.
    (2) In a non-domain environment
    Open PowerShell (Run as Administrator) on the Windows Server 2012 R2 Standard and type following PowerShell cmdlets: (Figure 9)
    Start-WssConfigurationService -CompanyName "xxx" -DNSName "xxx" -NetBiosName "xxx" -ComputerName "xxx” –NewAdminCredential $cred
    Figure 9.
    After you type the commands above and click Enter, you can create a new administrator credential. (Figure 10)
    After creating the new administrator credential, please type “Y” to continue to configure Windows Server Essentials. (Figure 11)
    After a reboot, all the configurations will be completed and you can open the Windows Server Essentials Dashboard without any errors. (Figure 12)
    Figure 12.
    Please click to vote if the post helps you. This can be beneficial to other community members reading the thread.

    Part 2: Install and configure Windows Server Essentials Experience role remotely
    In an existing domain environment
    In an existing domain environment, please use following command to provide credential and then add Server Essentials Role: (Figure 13)
    Add-WindowsFeature -Name ServerEssentialsRole
    -ComputerName xxx -Credential DomainName\DomainAccount
    Figure 13.
    After you enter the credential, it will start install Windows Server Essentials role on your computer. (Figure 14)
    Figure 14.
    After the installation completes, it will return the result as below:
    Figure 15.
    Next, please use the
    Enter-PSSession
    cmdlet and provide the correct credential to start an interactive session with a remote computer. You can use the commands below:
    Enter-PSSession –ComputerName
    xxx –Credential DomainName\DomainAccount (Figure 16)
    Figure 16.
    Then, please configure Server Essentials Role via
    Add-WssConfigurationService cmdlet and it also needs to provide correct credential. (Figure 17)
    Figure 17.
    After your credential is accepted, it will update and prepare your server. (Figure 18)
    Figure 18.
    After that, please type “Y” to continue to configure Windows Server Essentials. (Figure 19)
    Figure 19.
    2. In a non-domain environment
    In my test environment, I set up two computers running Windows Server 2012 R2 Standard and use Server1 as a target computer. The IP addresses for the two computers are as
    below:
    Sevrer1: 192.168.1.54
    Server2: 192.168.1.53
    Run
    Enable-PSRemoting –Force on Server1. (Figure 20)
    Figure 20.
    Since there is no existing domain, it is necessary to add the target computer (Server1) to a TrustedHosts list (maintained by WinRM) on Server 2. We can use following command
    to
    add the TrustedHosts entry:
    Set-Item WSMan:\localhost\Client\TrustedHosts IP-Address
    (Figure 21)
    Figure 21.
    Next, we can use
    Enter-PSSession
    cmdlet and provide the correct credential to start an interactive session with the remote computer. (Figure 22)
    Figure 22.
    After that, you can install Windows Server Essentials Experience Role remotely via Add-WindowsFeature ServerEssentialsRole cmdlet. (Figure 23)
    Figure 23.
    From figure 24, we can see that the installation is completed.
    Figure 24.
    Then you can use
    Start-WssConfigurationService cmdlet to configure Essentials Role and follow the steps in the first part (configure Windows Server Essentials Experience in a non-domain environment) as the steps would be the same.
    The figure below shows the status of Windows Server Essentials.
    Figure
    25.
    Finally, we have successfully configured Windows Server Essentials on Server1. (Figure 26)
    Figure 26.
    More information:
    [Forum
    FAQ] Introduce Windows Powershell Remoting
    Windows Server Essentials Setup Cmdlets
    Please click to vote if the post helps you. This can be beneficial to other community members reading the thread.

  • Java method to call LabView on remote computer

    Greetings,
    I am very new to LabView and have a Java programming background.
    I have to put together a way to submit a String to a LabView vi on a remote computer.  The Labview should then return another String to my Java program.  I just need an example of calling this on the remote computer.  I've seen many looping and circular references to doing it via JNI, but not much that shows a concrete example.
    Does anyone have a working example of opening the socket (or datagramsocket or whatever), writing to the socket, receiving the response and then closing the socket?
    Thank you.

    JNI won't really help for remote invocation. With JNI you would normally create a DLL for the local computer that interfaces to whatever you want to call.
    But considering your mentoining of remote calls, I think it would be easier to implement on the LabVIEW side some TCP/IP server and just call that from your Java program using socket calls.
    LabVIEW comes with a few networking examples. Check in the example finder for them. Doing the Java part shouldn't really be to difficult either. The fact that both LabVIEW and Java use Network Byte order by default for their flattened data also comes in handy.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Multiple LV instances, web server cannot start, port already in use

    Hi there,
    I have a general question about webserving VIs in case either
    a) multiple instances of the LV development environment are running (this is possible in windows XP for instance when "switch users" is allowed and each user launches LV)
    b) multiple compiled LV executables are run by the same user
    c) any mixture of the two above
    I have an application case when either of the three above would be a very good solution, was not for the problem encountered. Say, b): the user is given two deployed executables, and can decide to run either or both concurrently. Moreover, I want these applications to be visible on the web, so they are compiled with the webserver turned on, default settings.
    The problem I've seen (LV8.5.1, winXp for sure, but I think I've seen it as well in linux and other versions as well) is that each new instance of the LV engine tries to get hold of the tcp port (default 80), so that all instances beyond the first complain about "The Web Server cannot start. Is the Web Server port already in use?"
    While I can understand the origin of the message, and found some posts on the forums somehow related to it, I don't like it too much. 
    I could think only of two workarounds here: 1) set different web server ports for each LV instance, and instruct the remote users to direct their browsers to a webserverort link to access each VI; 2) run all the applications from the same instance of the LV dev system. The latter is not so convenient for me, due to conflicts in global VIs between all instances of the applications [compiling executables IS a way to privatize memory spaces in this case, AND global variables are imho well justified for the fairly complex application I have in mind here].
    Is there a third, more elegant solution perhaps, which I'm missing?
    Thanks, Enrico

    NathanK wrote:
    What is it in particular that you dislike about the message?
    How would you like LabVIEW to behave in this case?
    No problem with the message, but I'd just be very happy if a single
    web server would serve all my instances of the executables on the same
    port. I.e., if 2.exe is open and wants to start another server on the
    same port used already by 1.exe, then 2.exe becomes served by the
    server already opened. Am I demanding too much? Am I missing some
    necessary logic?
    At the moment, anyway, I'm stuck with the vi being served correctly,
    but not the compiled application, and I can't figure out why. It's
    LV8.5.1, and yes, I have in the .ini
    WebServer.DirectoryIndex="index.htm"
    WebServer.LogPath=C:\Program Files\National Instruments\LabVIEW 8.5\www.log
    WebServer.MimeTypes="htm;text/html;gif;image/gif;j​pg;image/jpeg;png;image/png;txt;text/plain;html;te​xt/html;jpeg;image/jpeg;css;text/css;llb;applicati​on/x-labview-llb;vi;application/x-labview-vi;doc;a​pplication/msword;dot;application/msword;bin;appli​cation/octet-stream;exe;application/octet-stream;r​tf;application/rtf;pdf;application/pdf;ai;applicat​ion/postscript;eps;application/postscript;ps;appli​cation/postscript;csh;application/x-csh;gtar;appli​cation/x-gtar;gz;application/x-gz;sh;application/x​-sh;tar;application/x-tar;zip;application/zip;hqx;​application/mac-binhex40;ua;audio/basic;wav;audio/​wav;tif;image/tiff;tiff;image/tiff;xbm;image/x-xbi​tmap;rtx;text/richtext;qt;video/quicktime;mov;vide​o/quicktime;avi;video/x-msvideo;movie;video/x-sgi-​movie;aif;audio/aif;aifc;audio/aif;aiff;audio/aif;​aim;application/x-aim;dif;video/x-dv;div;video/x-d​v;js;application/x-javascript;pntg;image/x-macpain​t;xlb;application/vnd.ms-excel;xls;application/vnd​.ms-excel;ppa;application/vnd.ms-powerpoint;ppt;ap​plication/vnd.ms-powerpoint;pps;application/vnd.ms​-powerpoint;pot;application/vnd.ms-powerpoint;pwz;​application/vnd.ms-powerpoint;mid;audio/mid;midi;a​udio/mid;enc;video/mpeg;m1v;video/mpeg;mp2;video/m​peg;mpa;video/mpeg;mpe;video/mpeg;mpeg;video/mpeg;​mpg;video/mpeg;psd;image/x-photoshop;bmp;image/bmp​;pic;image/pic;ra;audio/vnd.rn-realaudio;rf;image/​vnd.rf-realflash;rm;application/vnd.rn-realmedia;r​p;image/vnd.rn-realpix;ram;audio/x-pn-realaudio;rm​m;audio/x-pn-realaudio;rnx;application/vnd.rn-real​player;rt;text/vnd.rn-realtext;rv;video/vnd.rn-rea​lvideo;smi;application/smil;ssm;application/stream​ingmedia;sithqx;application/mac-binhex40;sit;appli​cation/x-stuffit"
    WebServer.Port=80  [### or 8000]
    WebServer.Enabled=True
    WebServer.RootPath=C:\Program Files\National Instruments\LabVIEW 8.5\www
    WebServer.TcpAccess="c+*"
    WebServer.ViAccess="+*"
     [hints welcome here]. That is, I'm at the moment unable to use even my workaround 1 above.
    Enrico

  • Executing a Job via Web Services using a Server Group?

    When executing a job from Designer or from the Management Console you have the option to select a specific job server or a server group.
    But when executing a job via Web Services it uses the first job server with which the repository was associated (i.e. the first job server listed in AL_MACHINE_INFO).
    Is there a way to get the job to execute using a server group instead simply choosing the first job server in the list?
    Note: We are using FIM to execute the jobs via web services and don't have access to additional parameters.

    Joe
    Here is the where you can change the server group/job server.
    - After you add the Batch/real Time job as a webservice.
    - Go to the Webservice Batch Job Attribute and from the drop down choose the "Enable job Attributes" and hit apply.
    - After this if you use the WSDL URL http://<Data Services Web Server>:<Web server Port>/DataServices/servlet/webservices?ver=2.0&wsdlxml
    - You will see the job attributes that you can change based on the allowed parameters mentioned in the documentation.
    The batch job or real time job is published without the job parameters by default. Once you enable the job attributes, remove and re publish the batch job as a web service. The application making the call to this webservice should be able to read the WSDL generated by Data services and pickup all the input and output parameters of the method.
    Refer to the Data Services Integrator guide (Chapter 3 : pages 25 - 33 ) to get the exact parameter values permitted via Data Services jobs called via web services.
    Hope this helps!
    Thanks & Regards
    Tiji

  • Native IO Disabled when using node manager to start managed server

    Hi,
    I am able to start my node manager and the managed server from the Admin Console. OS is AIX, WebLogic 9.2 MP3. The managed server starts OK, but Native IO is disabled even though it is enabled in the Admin Console for that manager server:
    ####<Jul 28, 2009 8:25:00 AM CDT> <Info> <Socket> <pstps09.statefarm.com> <PIA2> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1248787500274> <BEA-000447> <Native IO Disabled. Using Java IO.>
    I set NativeVersionEnabled to False in nodemanager.properties as specified in the BEA documentation, but can get Native IO to work. The log file clearly indicates that the JDK version is 32-bit:
    java.fullversion = J2RE 1.5.0 IBM J9 2.3 AIX ppc-32 j9vmap3223-20071007 (JIT enabled)
    Any ideas how to fix this or is this working as designed for AIX platforms?
    Thanks!
    -Mary Manchukian

    The following document asks to set NativeVersionEnabled to False:
    http://edocs.bea.com/wls/docs61/adminguide/remotestart.html#1043956:
    The Node Manager is available for use only on Windows and UNIX platforms. Native libraries are available for running the Node Manager on Windows, Solaris, HP-UX, AIX and Red Hat Linux operating systems. For UNIX operating systems other than Solaris and HP UX, you will need to use the following argument on the java command line when starting the Node Manager:
    -Dweblogic.nodemanager.nativeVersionEnabled=false
    If we do not set NativeVersionEnabled to False, the managed server doesn't start at all and fails with the error:
    java.io.IOException: Server failed to start up. See server output log for more details.
    at weblogic.nodemanager.server.ServerManager.start(ServerManager.java:296)
    at weblogic.nodemanager.server.Handler.handleStart(Handler.java:511)
    at weblogic.nodemanager.server.Handler.handleCommand(Handler.java:115)
    at weblogic.nodemanager.server.Handler.run(Handler.java:66)
    at java.lang.Thread.run(Thread.java:810)
    All I want is to be able to start the managed server from the Admin Console > Remote Start tab.
    Thanks,
    -Mary

  • Cannot set Start Mode using SQL Server Configuration Manager

    I have SQL Server 2012 Express installed on Windows 8.1 and am trying to change the Start Mode to Manual using SQL Server Configuration Manager. However, when I open the Properties dialog and use the drop-down for Start Mode on the Service tab the drop-down
    is inoperative. A "vertical bar" appears but no options.
    Is there some other way that I can change the Start Mode?

    I have SQL Server 2012 Express installed on Windows 8.1 and am trying to change the Start Mode to Manual using SQL Server Configuration Manager. However, when I open the Properties dialog and use the drop-down for Start Mode on the Service tab the drop-down
    is inoperative. A "vertical bar" appears but no options.
    Is there some other way that I can change the Start Mode?
    I have seen that on my laptop as well and it was due to display /resolution setting. Please see if that helps you. BTW, as already answered, services.msc is another way of changing it.
    Balmukund Lakhani | Please mark solved if I've answered your question, vote for it as helpful to help other users find a solution quicker
    This posting is provided "AS IS" with no warranties, and confers no rights.
    My Blog |
    Team Blog | @Twitter
    Author: SQL Server 2012 AlwaysOn -
    Paperback, Kindle

  • Improving load times in Linux LabVIEW executable

    I'm looking for (simple) ways to improve the loading times in a Linux LabVIEW executable. We're using a low performance, low cost CPU board, and loading times are terrible. The CPU is capable of doing everything after the application is loaded, but takes forever to get there.
    One of the problems is the size of the executable, that grows everytime you just look at it. Are there ways to create smaller executables? It runs from a Compact Flash card, which is ofcourse much slower than hard disk.
    Another problem is a dynamic vi, that is started for every TCP connection that connects to the application. It takes a long time to load, and connecting too fast can even effectively hang up the system. Starting a handler task takes about half a second, up to a few seconds for the first task.
    We're using the LabVIEW 7.1 runtime, system is a 300 MHz cyrix SBC, running from a Compact Flash.

    Dennisvr wrote:
    I'm looking for
    (simple) ways to improve the loading times in a Linux LabVIEW
    executable. We're using a low performance, low cost CPU board, and
    loading times are terrible. The CPU is capable of doing everything
    after the application is loaded, but takes forever to get there.   One
    of the problems is the size of the executable, that grows everytime you
    just look at it. Are there ways to create smaller executables? It runs
    from a Compact Flash card, which is ofcourse much slower than hard disk.   Another
    problem is a dynamic vi, that is started for every TCP connection that
    connects to the application. It takes a long time to load, and
    connecting too fast can even effectively hang up the system. Starting a
    handler task takes about half a second, up to a few seconds for the
    first task.   We're using the LabVIEW 7.1 runtime, system is a 300 MHz cyrix SBC, running from a Compact Flash.
    I'm
    not sure about the first part of your question. LabVIEW is highly
    binary and does a lot of memory allocations before even one VI is ready
    to be started. So maybe the memory manager is a problem. Another issue
    is that the Macintosh like resource file format that is used by LabVIEW to store its VIs etc. results in
    lots and lots of individual disk accesses with a rther random like
    character inside a single file. So if you can configure the read
    caching of your disk to use more memory this may significantly increase
    the speed of loading LabVIEW VIs or applications.
    And finally spawning VIs through VI server is a rather costly operation
    especially on low resoruce systems. A VI is more like an executable in
    many ways as far as resource consumption is concerned rather than a
    thread. A much better way would be to avoid spawning subVIs altogether
    and implement a queued TCP/IP server similar to the Date Time Server
    example. It is a little extra work to work with this shift register
    architecture but it will not have the issues of long load times for
    every new TCP/IP connection coming in.
    Rolf Kalbermatter
    Message Edited by rolfk on 03-07-2006 06:33 PM
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Can I use SubPanels to display and run multiple executables from the same GUI?

    I have two Labview executables that performs some A/D I/O, each using an independent USB-6008.  I would like to run both of these executables from a single UI.  Is this possible usin SubPanels?  Or some other method?
    I found KB regarding exe's and VI Server but can't seem to get the suggested workarounds implemented.
    http://digital.ni.com/public.nsf/allkb/8545726A00272EB0862571DA005B896C?OpenDocument
    I am using Labview2009
    Thanks
    Dan
    Solved!
    Go to Solution.

    DBerry wrote:
    No, of course I am not sure yet.  I have only begun testing this method. 
    Not sharing common hardware (separate USM-6008s).
    Here is the whole picture:
    I have developed a top-level VI that performs Daqmx IO using a single USB-6008.  The top-level VI references a Project Daqmx Task that points to the desired 6008.  I would like to create a single UI that uses this top-level VI to control twoUSB-6008s simultaneously.  I thought I could build the top-level VI into 2 separate exes, where the only difference between the exes is the hardware it points to (one exe to each of the 6008s).  But I have been unsuccessful at running these two exes within a single UI.  I attempted use subpanels on a tab control to do this but I am unable to obtain a reference to the top-level vis once they have been built into an exe.  I have also tried building a dll and exporting the top-level vi from the dll build but i can't seem to get that to work either.  In both of these cases my Open VI reference function returns errors (Error 1445).  I am aware of the changes in referencing VIs from within an exe/dll since LV8.2 - http://digital.ni.com/public.nsf/allkb/8545726A00272EB0862571DA005B896C
    The link seems to suggest that I should be able to obtain a reference to the top-level vi within the dll but I can't get it to work.
    So I then moved on to the above method (making all the subvis reentrant).  I just haven't figured this all out yet.
    If you have suggestions on other problems I may run into please share.  I think I can eliminate my FGs but haven't gotten back to this yet.
    Thanks
    Dan
    When I am designing apps of the type you described I have kept the ned goal in mind from the begining since of the issue you are mentioning. I also don't want to tell you to throw it all away and start over. So with that in mind I have been looking at your posts and only offering the least destrutive ideas first. With that in mind I would like to invite yo uto look at the code i posted in this thread (reply #18 has a zip).
    That code shows how to realize un-dockable GUI regions but it passes the ref of the top level VI to a reentrant VI it instanciate for each undockable region. It may have enough hints and technique to give you some ideas that will work for you.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Best way to create a Windows service from a LabVIEW executable​?

    What would be the best way to run a LabVIEW executable as a service? I needed this recently and I think I have set up such a service using srvany.exe from the Windows 2003 Resource Kit, but that seems like a bit of a hack. The Kit is not offically supported in Server 2008, but seems to work. I don't know about Server 2012 or beyond.
    So what would be the "proper" way of going about creating a Windows service from a headless LabVIEW application?

    The proper way is to interface to the according Windows service control API. That is however not a trivial task to do. We used to sell a LabVIEW toolkit which supported a full interface to this, but it's not currently actively marketed.
    srvany.exe is sort of a hack but works reasonably well for most use cases, as long as you do not need any further interaction with the service manager interface in Windows than to start and stop your service.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • LabVIEW executable unnecessarily accesses internet on launch

    I built a simple LabVIEW executable (e.g. doing a+b=c, or even just empty), using all default options in the Application Builder (VI Server disabled - both TCP/IP and ActiveX; Web Server disabled). Target platform - Windows 2000. LabVIEW version 7.1 (the same behavior on 7.0, but not on 6.1).
    When I launch my executable, the firewall (ZoneAlarm Pro) reports the application trying to access the internet (in my case, 63.240.76.19NS - probably the DNS server of my ISP). I tell the firewall to deny service; after that the application launches and works fine.
    Why does it do it? How can I disable this attempt to access the internet?

    Cepera wrote:
    > I built a simple LabVIEW executable (e.g. doing a+b=c, or even just
    > empty), using all default options in the Application Builder (VI
    > Server disabled - both TCP/IP and ActiveX; Web Server disabled).
    > Target platform - Windows 2000. LabVIEW version 7.1 (the same behavior
    > on 7.0, but not on 6.1).
    >
    > When I launch my executable, the firewall (ZoneAlarm Pro) reports the
    > application trying to access the internet (in my case,
    > 63.240.76.19NS - probably the DNS server of my ISP). I tell the
    > firewall to deny service; after that the application launches and
    > works fine.
    I just tried to watch the network traffic with Ethereal while starting
    up LabVIEW 7.0 PDS and I can not detect any LabVIEW related
    communication whatsoever. DNS lookups are
    not filtered by Ethereal, but
    if that is the only thing happening, there are no risicos with it.
    It could be that LabVIEW initializes the Winsock library on startup and
    causes a reverse DNS for its own IP address and depending on your
    network setup this could result in a remote DNS request. Maybe something
    to detect multi network PCs or whatsoever, or the library for Infrared
    tries to do something on initialization of the Winsock. But unless
    someone can tell me what address it tries to resolve and show that it
    then tries to actually communicate with a higher level protocol with
    anything else, I do not consider it an attempt to call home, at least on
    my computer. However it would be nice if someone from NI could shed some
    light on the reasons for this just to make sure.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

Maybe you are looking for