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.
Deployment issues
We will try to reproduce the issues once again, in line with what you are doing. Thank you for the details.
Please Log in or Create an account to join the conversation.
This all happens on a test deployment pc where the end product is installed. This is a clean PC running in a VM
The deployment method used is as was directed in the previous version where we install the registry hive on the target pc running the service that utilises the “OPCLabs calls”.
On this target pc running the code as pasted before (#1969) produces the same result ie 1st call works OK but subsequent calls fail.
Workaround implemented:
On the dev pc set up values for
OpcLabs.EasyOpc.UA.EasyUAClient.SharedParameters.Engine.ApplicationCertificateStore
OpcLabs.EasyOpc.UA.EasyUAClient.SharedParameters.Engine.ApplicationUriString
OpcLabs.EasyOpc.UA.EasyUAClient.SharedParameters.Engine.ApplicationName
OpcLabs.EasyOpc.UA.EasyUAClient.SharedParameters.Engine.ProductUriString
OpcLabs.EasyOpc.UA.EasyUAClient.SharedParameters.Engine.ApplicationUriString
Then call OpcLabs.EasyOpc.UA.EasyUAClient.Install()
This creates the certificates in the specified location
For the deployed application/service set the OpcLabs.EasyOpc.UA.EasyUAClient.SharedParameters.Engine.ApplicationCertificateStore to be the directory containing the running executable and copy the CertificateStore directory and contents in this location . This seems to then work as expected. NB if the certificate store location is set to somewhere else eg “c:\programdata\company\product\ CertificateStore” then the system fails as before ie 1st call works but subsequent calls fail.
Thanks
Please Log in or Create an account to join the conversation.
Does this happen on the computer where you have installed QuickOPC using its installation program, or is it on a computer where you install the application yourself?
If not done by the installation program, have you followed the instructions in the Concepts document (the Application Deployment section?). Some prerequisites need to be installed, event before you call the static .Install method (its purpose is currently mainly to generate and install the client application certificate; if not called, it will try to do the same when an OPC operation is attempted but no certificate exists in the store).
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Thank you
Please Log in or Create an account to join the conversation.
If this code is called from a windows app (form) running with elevated privileges (admin account)
eg c# code
OpcLabs.EasyOpc.UA.EasyUAClient UAClient = new OpcLabs.EasyOpc.UA.EasyUAClient();
try
{
string s2 = "";
foreach (OpcLabs.EasyOpc.UA.UAApplicationElement s in UAClient.DiscoverServers("scadaserver"))
{
s2 += "\n" + s.DiscoveryUriString;
}
MessageBox.Show(s2);
}
catch (Exception exc)
{
MessageBox.Show(exc.ToString());
}
Run this once and it seems to work... run it a second time and it throws exception CertificateGenerator not installed (even if it is in the local directory with the running exe)
So try to call the EasyUAClient.Install() on start up of application get exception
System.InvalidOperationException was unhandled
HResult=-2146233079
Message=Precondition failed: SdkCertificateValidationEventHandler == null
Source=OpcLabs.EasyOpcUAInternal
StackTrace:
at System.Diagnostics.Contracts.__ContractsRuntime.Requires[TException](Boolean condition, String msg, String conditionTxt)
at OpcLabs.EasyOpc.UA.Toolkit.UAClientEngineBase.SetupSdkApplicationConfiguration(ApplicationConfiguration sdkApplicationConfiguration)
at OpcLabs.EasyOpc.UA.Toolkit.UAClientEngineBase.CreateSdkApplicationConfiguration(ApplicationInstance sdkApplicationInstance, ApplicationConfiguration& sdkApplicationConfiguration)
at OpcLabs.EasyOpc.UA.Toolkit.UAClientEngineBase.CreateSdkApplicationInstance(ApplicationInstance& sdkApplicationInstance, ApplicationConfiguration& sdkApplicationConfiguration)
at OpcLabs.EasyOpc.UA.Toolkit.UAClientEngineBase.MakeSdkApplicationInstance(ApplicationInstance& sdkApplicationInstance)
at OpcLabs.EasyOpc.UA.Toolkit.UAClientEngine.InstallApplication()
at OpcLabs.EasyOpc.UA.EasyUAClient.Install()
In order to deploy my client app/service: regarding certificates etc. please could you offer some guidance as to what I need to do
Thank You
Please Log in or Create an account to join the conversation.