Professional OPC
Development Tools

logos

Online Forums

Technical support is provided through Support Forums below. Anybody can view them; you need to Register/Login to our site (see links in upper right corner) in order to Post questions. You do not have to be a licensed user of our product.

Please read Rules for forum posts before reporting your issue or asking a question. OPC Labs team is actively monitoring the forums, and replies as soon as possible. Various technical information can also be found in our Knowledge Base. For your convenience, we have also assembled a Frequently Asked Questions page.

Do not use the Contact page for technical issues.

"Server execution failed" when calling application is a service

More
10 Sep 2010 10:24 #63 by steveh
Running the EasyOPC-DA component as a Service solved the problem, except that the processor usage for eopcdal.exe is seriously higher than I would have expected given the quite small amount of work it is doing.I will do some more checking to see if I have a problem, and will post again if I need help.

Please Log in or Create an account to join the conversation.

More
10 Sep 2010 07:53 #61 by support
Yes, most likely this is just an issue of properly setting the permissions, and not a bug. If you are going to register the EasyOPC-DA as a Service too (as I recommended), the problem may go away. If it does not, or if you still want to make it work as Local server, read further.
First, you need to determine whether the problem is that

a) your application cannot call EasyOPC-DA, or
b) EasyOPC-DA cannot call the target OPC server.

In order to figure this out, try accessing something in the EasyOPC-DA component that does NOT need the target OPC server. For example, try to retrieve value of some property , such as Timeouts.ReadItem. If this fails, it is a); if it succeeds, it is b).
For a): Run DCOMCNFG from the command line, and navigate to Console Root -> Component Services -> Computers -> My Computer -> DCOM Config. Do right-click on "EasyOPC-DA (COM) 5.0", and select Properties. Configure the settings on Security and Identity as needed (below).
For b): Run DCOMCNFG from the command line, and navigate to Console Root -> Component Services -> Computers -> My Computer -> DCOM Config. Locate the entry for your target OPC server, right-click on it, and select Properties. Configure the settings on Security and Identity as needed (below). I am assuming that the OPC server is not remote; if it is, you will need to do this on the computer where the server is located, and things would complicate even further.
The Identity tab determines which user account the EasyOPC-DA component or the OPC server runs under. The Security tab determines which user accounts can launch/activate and access the EasyOPC-DA component or the OPC server. You need to think about which accounts you want to use, and then configure the Identity and the Security accordingly. For start, just to verify that this is a permissions issue, select "Customize" for both "Launch and Activation Permissions" and "Access Permissions", add following accounts: Everyone, INTERACTIVE, SYSTEM, NETWORK, and give them at least "Local Launch", "Local Activation" resp. "Local Access" permissions. If you make this work, you can later restrict the security back to what is precisely needed.
The DCOMCNFG stuff I described was for Windows 7. On other systems, it may be a bit different, but still quite similar.

Please Log in or Create an account to join the conversation.

More
10 Sep 2010 02:34 #59 by steveh

I have come across another issue you may be able to throw some light on. I think it may be the result of running as a Local Server.
I have tested an app operating from a shell as a local user, and the app works fine. No problems reading the items I need. An eopcdal.exe appears in the XP processes list running under the local user name.
The identical app when run as a service throws an exception "Server execution failed". The app as a service is running under the SYSTEM account, and an eopcdal.exe does appear in the processes list under the SYSTEM account, The initialization of the new COM instance does not object, but the error gets thrown when I execute a read request.
Is this perhaps a permissions thing? Any ideas gratefully received.

Please Log in or Create an account to join the conversation.

Moderators: support
Time to create page: 0.046 seconds