It seems like this tends to happen when the client has been idle for a while.
For example, if trying to execute the following code: (note that _spServer is a SelectServer object that was created when the package first loaded, and is passed around)
Code: Select all
var os = _spServer.GetService<IOrderStore>();
Object reference not set to an instance of an object.
at SoftPro.ClientModel.Proxies.ClientProxy`1.OnHandleFaultException(FaultException exception)
at SoftPro.ClientModel.Proxies.ClientProxy`1.HandleFaultException(FaultException exception)
at SoftPro.Select.Client.Runtime.LicensingServiceClient.AcquireLease(LicensedProduct product)
at SoftPro.Select.Client.Runtime.Licensing.SoftPro.Select.Client.Runtime.ILicensing.Acquire(LicensedProduct product)
at SoftPro.Select.Client.SelectServerObject.AcquireLicense(LicensedProduct product)
at SoftPro.OrderTracking.Client.Orders.OrderStore.SoftPro.OrderTracking.Client.Orders.IOrderStore.get_Orders()
at WorkBenchLibrary.Utilities.SoftProCommands.OpenCanceledOrder(Guid orderId) in C:\TFS\PGPTitle\SoftPro Shell Packages\EditorFactory\WorkBench\Utilities\SoftProCommands
at WorkBenchLibrary.Utilities.SoftProCommands.OpenOrder(OrderIdentifier orderId, Boolean checkIfCanceled) in C:\TFS\PGPTitle\SoftPro Shell Packages\EditorFactory\WorkBench\Utilities\SoftProCommands.cs
and a mid-tier side error
An error occured on the service boundary.Error: Object reference not set to an instance of an object.
Stack Trace:
at SoftPro.Select.Server.Runtime.Licensing.SoftPro.Select.Client.Runtime.ILicensing.Acquire(LicensedProduct product)
at SyncInvokeAcquireLease(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
Claims:
Type=http://schemas.xmlsoap.org/ws/2005/05/i ... laims/hash, Right=http://schemas.xmlsoap.org/ws/2005/05/i ... ssproperty, Resource=System.Byte[]
Type=http://schemas.xmlsoap.org/ws/2005/05/i ... identifier, Right=http://schemas.xmlsoap.org/ws/2005/05/i ... t/identity, Resource=System.IdentityModel.Tokens.SamlNameIdentifierClaimResource
Type=http://schemas.xmlsoap.org/ws/2005/05/i ... identifier, Right=http://schemas.xmlsoap.org/ws/2005/05/i ... ssproperty, Resource=System.IdentityModel.Tokens.SamlNameIdentifierClaimResource
Type=http://schemas.softprocorp.com/claims/sessionidentifier, Right=http://schemas.xmlsoap.org/ws/2005/05/i ... ssproperty, Resource=d4f1f2ba-8dd2-4c65-b7e1-e81452ab9222
Type=http://schemas.softprocorp.com/claims/trusteeidentifier, Right=http://schemas.xmlsoap.org/ws/2005/05/i ... ssproperty, Resource=16eab2cc-ec99-4f45-b8b3-075739766b9c
Type=http://schemas.softprocorp.com/claims/trusteeusername, Right=http://schemas.xmlsoap.org/ws/2005/05/i ... ssproperty, Resource=PMCORP\skulbersh
Type=http://schemas.softprocorp.com/claims/t ... emberships, Right=http://schemas.xmlsoap.org/ws/2005/05/i ... ssproperty, Resource=7d900037-cad5-485c-9526-4d6d93bfd067,e8ba81d1-8c99-df11-a957-0022fb5d6ef2,75e04731-2fe7-e311-9153-0050569d224b,8acf6cde-11b1-e311-bbd6-0050569d224b,94a15337-3c17-e411-89e8-0050569d27a0,37adf7bf-47f7-df11-a72c-0050569d568a,dfc29e4a-76c4-4fff-85d0-a2dcb8d27d...
Type=http://schemas.softprocorp.com/claims/d ... identifier, Right=http://schemas.xmlsoap.org/ws/2005/05/i ... ssproperty, Resource=00000000-0000-0000-0000-000000000000
Type=http://schemas.softprocorp.com/claims/d ... identifier, Right=http://schemas.xmlsoap.org/ws/2005/05/i ... ssproperty, Resource=00000000-0000-0000-0000-000000000000
Type=http://schemas.softprocorp.com/claims/aiparticipant, Right=http://schemas.xmlsoap.org/ws/2005/05/i ... ssproperty, Resource=True
Type=http://schemas.softprocorp.com/claims/a ... ntationkey, Right=http://schemas.xmlsoap.org/ws/2005/05/i ... ssproperty, Resource=4bed6907-345f-475d-9394-982af2e01739
Type=http://schemas.softprocorp.com/claims/a ... ntationkey, Right=http://schemas.xmlsoap.org/ws/2005/05/i ... ssproperty, Resource=Error
Action=http://schemas.softprocorp.com/select/r ... quireLease, ReplyTo=http://schemas.microsoft.com/2005/12/Se ... /Anonymous, FaultTo=
A similar issue sometimes happens when trying to get the select server object through the IOrder object
Code: Select all
var ss = order.GetService<SelectServer>();
Exception has been thrown by the target of an invocation.
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at FieldCodeTracker.PgpFieldCodeTracker.PropertyChangedListener(Object sender, PropertyChangedEventArgs args) in C:\TFS\PGPTitle\SoftPro Shell Packages\Core Package\FieldCodeTracker\FieldCodeTracker.cs
Object reference not set to an instance of an object.
at FieldCodeTracker.Trackers.OrderInstance.OnSettlementDateChanged(Object sender, PropertyChangedEventArgs args) in C:\TFS\PGPTitle\SoftPro Shell Packages\Core Package\FieldCodeTracker\Trackers\OrderInstance.cs
Is there a recommended surefire way to get a fresh copy of the select server, even if the connection to the server has wobbled (NOT been fatally severed)?