new RequestContext() throws exception

Questions regarding the use of the .NET SDK 2.0 for Server or Client development or integration into customer products ...

Moderator: uasdknet

Post Reply
JeffGilbert
Jr. Member
Jr. Member
Posts: 1
Joined: 04 May 2016, 15:18

new RequestContext() throws exception

Post by JeffGilbert »

Hi,
I'm trying to create some unit tests that involve the RequestContext, but I get an exception when I try to construct it. Is it possible/practical for me to create a new RequestContext() like this?

Code: Select all

    [Fact()]
    public void HasAccessTest()
    {
        var serverManager = new ServerManager();
        var requestHeader = new RequestHeader();
        var requestContext = new RequestContext(serverManager, requestHeader, ServiceType.ActivateSession);  //throws exception
        var accessControlManager = container.Resolve<AccessControlManager>();
        Assert.True(accessControlManager.HasAccess(requestContext));
    }
Exception:

Code: Select all

Object reference not set to an instance of an object.
   at UnifiedAutomation.UaServer.ServerContext..ctor(ServerManager server)
   at UnifiedAutomation.UaServer.RequestContext..ctor(ServerManager server, RequestHeader requestHeader, ServiceType requestType)
   at McOpcUaServerTests.OPC.AccessControlManagerTests.HasAccessTest() in C:\Repo\OPC UA\McOpcUaServerTests\OPC\AccessControlManagerTests.cs:line 29
Thanks,
Jeff

User avatar
Support Team
Hero Member
Hero Member
Posts: 3072
Joined: 18 Mar 2011, 15:09

Re: new RequestContext() throws exception

Post by Support Team »

Hello,

You cannot create a RequestContext using a ServerManager that has not been passed as argument in the method ApplicaionInstance.Start. The class RequestContext shall not be used in this way.

Your code could look like this:

Code: Select all

ApplicationInstance app = new ApplicationInstance();
var serverManager = new ServerManager();
var requestHeader = new RequestHeader();
app.Start(serverManager, null, null);
var requestContext = new RequestContext(serverManager, requestHeader, ServiceType.ActivateSession);  //does NOT throw exception
Best regards
Support Team

Post Reply