09-06-2011 08:58 PM
In LV 2010, a Web Service Auxiliary VI began to run upon web service deployment. After upgrading to 2011 [f2], auxiliary VI's no longer run upon deployment of their web service. I have validated this with a test project:
1. Create a new auxiliary VI that fills a boolean global with the value TRUE.
2. Add a new web service build. Include the VI as an "Auxiliary VI" in the Service VI's portion of the build specs.
3. Build and deploy the web service. Check the global front panel and observe that the boolean is still FALSE.
Since this behavior pretty much nukes the entire concept of Aux VI's, I'm curious what's going on [well, I also want it to not happen in a desperate way]. Can anybody else verify this?
09-07-2011 11:17 AM
Does your web page deployment fail when you use Labview 2011? It sounds as though it is just building incorrectly, but you might want to try this patch. One of the fixes included in this patch (f2) is failed web page deployment. It can be found at the link below:
Please let me know if this changes the results of the tests that you described previously.
09-07-2011 11:25 AM
I have the patch. The deployment doesn't fail.
09-07-2011 11:42 AM
it should be very simple to replicate [or not].
09-07-2011 12:34 PM - edited 09-07-2011 12:35 PM
I'm going to help you with this. Can you please post a screenshot of your code, as well as one showing the behavior which you don't want?
09-15-2011 11:24 AM
Sorry for the delay. I believe that my simple description of the extremely simple code is sufficient to reproduce the problem. An image of a global being filled with a constant value won't be very useful. Has anybody attempted to follow my instructions and reproduce the behavior I've described?
09-16-2011 09:41 AM
I set up the situation you described, but I could not reproduce the issue with the 2011 f2 patch. I created a global variable (initialized to False), set up an auxiliary VI that sets that value to True, then wrote a web service that reports the value of the global variable. On my machine, the web service reports True, and removing the auxiliary VI and redeploying causes the service to report False, as expected.
I was confused when you said that the value was incorrect on the global's front panel. What front panel are you referring to? If you are opening up the global's front panel in the LabVIEW project, I would not expect to see any updates, because that front panel is not linked to the web service runtime.
Please let me know if I need to change my reproduction steps.
09-20-2011 12:33 AM
good call. I reconfigured the test to use network-published shared variables so I could monitor the value with the DSM and it works fine. I'll have to come up with another explaination for why my web service broke when I installed f2...
09-21-2011 04:22 PM
Well, that was clearly not what was causing the problem, but the fact remains that I had a working webservice before upgrading [it's hard to tell right now whether the upgrade to 2011 or f2 caused the problem] and now I've got the following problem:
First a description of what I'm doing. I have an Auxiliary VI which enables and requests value change notifications for two NSV's. The notification refnum [cast as an int] and SV names are sent to globals. As an Aux VI, this code is automatically run upon deployment of the webservice. [image below]
Next, I have a service VI [image below]. The notification refum is cast back to the correct notification type, and SV value change notifications are registered for. The registration is passed to an event structure set to run when either of the SV values change. This web service is called by the web client periodically [the long expiration time (~1 day) and lack of a loop for the event structure are required for my intended web service behavior].
In LV 2010 SP1, this did exactly what I wanted it to do: the client accesses the service VI, but waits for a response until the data generator changes the SV values. I considered this a fairly clever and lightweight solution for my very-low-trigger-rate application.
Now, with LV 2011 [f2], the event structure never triggers. I've verified that the notification refnum and SV names provided to the service VI are correct. I also checked that this process works [the event structure executes] when the above two diagrams are placed in a two-pane sequence structure. The Aux VI and Service VI's should belong to the same application instance, and I can't imagine this having changed [else what is the point of an Aux VI?]. But the evidence still seems to indicate that the notification refnum passed from the Aux VI is no longer valid when used by the Service VI.
09-22-2011 03:31 PM
[addendum: the typecasts are not necessary, they were left over from a previous version which attempted to us SV's instead of globals. Notification refnums are an illegal SV type]