How to load my Access Control plug-in

Hi,

I’m new to MIP development.

I’m trying to load an Access Control plugin, but it seems it’s not getting loaded.

What I did was

  1. building an MIP Access Control plugin from the template

  2. and then putting the DLLs in the MIPPlugins folder under the Xprotect Management Client folder.

What happens when I launch the client is nothing.

To test if the client can load other plugins, I also built an MIP plugin and put the DLLs in the folder and I was able to see that the plugin was loading from the log file ([C:\ProgramData\Milestone\XProtect](file:C:/ProgramData/Milestone/XProtect) Management Client\Logs\MIPtrace.log).

What am I missing?

Please take a look at the attached screenshots.

User-added image

In case you cannot see the log because of the resolution:

As you can see from the below, there’s a line for “MIPPluginAllVS20101” (MIP Plugin) but there’s no line for “SupremaAccessControlPlugin”, which is an MIP Access Control plugin.

2015-11-30 18:34:27.370+09:00 [ 1] INFO - MIP: Initialize () - Product version:VideoOS 7.0.871.4

2015-11-30 18:34:27.488+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.Init() (MIPPluginAllVS20101) -

2015-11-30 18:34:27.491+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.Init() (Milestone XProtect Access Control Module) -

2015-11-30 18:34:27.491+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.Init() (Milestone XProtect Access Control Module) -

2015-11-30 18:34:27.492+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.Init() (Analytics Events) -

2015-11-30 18:34:27.627+09:00 [ 1] INFO - MIP: ServiceReg: () - http://localhost/ManagementServer/ServiceRegistrationService.svc

2015-11-30 18:34:27.742+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.Init() (Alarms) -

2015-11-30 18:34:27.756+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.Init() (Generic Events) -

2015-11-30 18:34:27.980+09:00 [ 1] INFO - MIP: ServiceReg: () - http://localhost/ManagementServer/ServiceRegistrationService.svc

2015-11-30 18:34:28.150+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.Init() (ServiceHelper) -

2015-11-30 18:34:28.150+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.BackgroundPlugins (MIPPluginAllVS20101) -

2015-11-30 18:34:28.155+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.ToolsOptionsDialogPlugins (MIPPluginAllVS20101) -

2015-11-30 18:34:28.155+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.BackgroundPlugins (Milestone XProtect Access Control Module) -

2015-11-30 18:34:28.155+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.ToolsOptionsDialogPlugins (Milestone XProtect Access Control Module) -

2015-11-30 18:34:28.270+09:00 [ 1] INFO - MIP: ServiceReg: () - http://localhost/ManagementServer/ServiceRegistrationService.svc

2015-11-30 18:34:28.435+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.BackgroundPlugins (Milestone XProtect Access Control Module) -

2015-11-30 18:34:28.435+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.ToolsOptionsDialogPlugins (Milestone XProtect Access Control Module) -

2015-11-30 18:34:28.435+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.BackgroundPlugins (Analytics Events) -

2015-11-30 18:34:28.435+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.ToolsOptionsDialogPlugins (Analytics Events) -

2015-11-30 18:34:28.435+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.BackgroundPlugins (Alarms) -

2015-11-30 18:34:28.436+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.ToolsOptionsDialogPlugins (Alarms) -

2015-11-30 18:34:28.542+09:00 [ 1] INFO - MIP: ServiceReg: () - http://localhost/ManagementServer/ServiceRegistrationService.svc

2015-11-30 18:34:28.781+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.BackgroundPlugins (Generic Events) -

2015-11-30 18:34:28.782+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.ToolsOptionsDialogPlugins (Generic Events) -

2015-11-30 18:34:28.783+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.BackgroundPlugins (ServiceHelper) -

2015-11-30 18:34:28.784+09:00 [ 1] INFO - MIP: Calling:PluginDefinition.ToolsOptionsDialogPlugins (ServiceHelper) -

2015-11-30 18:34:28.786+09:00 [ 1] INFO - MIP: Calling:ItemManager.Init() (MIPPluginAllVS20101) -

2015-11-30 18:34:28.786+09:00 [ 1] INFO - MIP: Calling:ItemManager.Init() (Access Control) -

2015-11-30 18:34:28.876+09:00 [ 1] INFO - MIP: ServiceReg: () - http://localhost/ManagementServer/ServiceRegistrationService.svc

2015-11-30 18:34:29.028+09:00 [ 1] INFO - MIP: Calling:ItemManager.Init() (Access Control Server) -

2015-11-30 18:34:29.028+09:00 [ 1] INFO - MIP: Calling:ItemManager.Init() (Access Control Unit) -

2015-11-30 18:34:29.028+09:00 [ 1] INFO - MIP: Calling:ItemManager.Init() () -

2015-11-30 18:34:29.028+09:00 [ 1] INFO - MIP: Calling:ItemManager.Init() (Access request notification) -

2015-11-30 18:34:29.031+09:00 [ 1] INFO - MIP: Calling:ItemManager.Init() (Analytics Events) -

2015-11-30 18:34:29.031+09:00 [ 1] INFO - MIP: Calling:ItemManager.Init() (Alarm Definition) -

2015-11-30 18:34:29.033+09:00 [ 1] INFO - MIP: Calling:ItemManager.Init() (Alarm Data Settings) -

2015-11-30 18:34:29.033+09:00 [ 1] INFO - MIP: Calling:ItemManager.Init() (Sound Settings) -

2015-11-30 18:34:29.033+09:00 [ 1] INFO - MIP: Calling:ItemManager.Init() (Generic Event) -

2015-11-30 18:34:29.053+09:00 [ 18] INFO - MIP: CommunicationClient background thread () - Now starting…

2015-11-30 18:34:29.146+09:00 [ 1] INFO - MIP: Calling:BackgroundPlugin.Init() (Port watcher plugin) -

2015-11-30 18:34:29.149+09:00 [ 1] INFO - MIP: Calling:BackgroundPlugin.Init() (Event server connection background plug-in) -

2015-11-30 18:34:29.152+09:00 [ 1] INFO - MIP: Calling:BackgroundPlugin.Init() (ServiceHelperBackground) -

2015-11-30 18:34:29.375+09:00 [ 23] INFO - MIP: ServiceReg: () - http://localhost/ManagementServer/ServiceRegistrationService.svc

2015-11-30 18:34:29.652+09:00 [ 23] INFO - MIP: ServerStaus () - Connected to the event server.

2015-11-30 18:34:30.556+09:00 [ 18] INFO - MIP: ServiceReg: () - http://localhost/ManagementServer/ServiceRegistrationService.svc

Sorry, I was able to load the plugin just by moving the folder to the “[D:\Program](file:D:/Program) Files\Milestone\XProtect Event Server\MIPPlugins” folder (I installed XProtect on the D drive).

When I moved the folder to the “[D:\Program](file:D:/Program) Files\Milestone\MIPPlugins” folder, the plugin was not loaded.

Do I always have to place my access control plugin under the event server folder or am I missing something?

The plugin is not an administrator plugin but an event server plugin. Hence the

We actually recommend that you use the overall working placement for plugins: [C:\Program](file:C:/Program) Files\Milestone\MIPPlugins\

For further insight into this I recommend in the MIP SDK Documentation: Getting Started - Plug-in Development

This chapter also includes further information on debugging etc.

Actually, I also tried the folder “[D:\Program](file:D:/Program) Files\Milestone\MIPPlugins\”, but it didn’t make any changes.

Can you give me any instructions which I can try?

One important note; the Event Server only loads plugins at start up, so you will have to restart the service.

The folder is [C:\Program](file:C:/Program) Files\Milestone\MIPPlugins\

This is the folder that plugins are loaded from.. (Not from a D: drive or anywhere else.)

Suddenly I have a nagging doubt. Have you changed the environment so that %ProgramFiles% is something else? I am in doubt it will work, my guess is it will still be

[C:\Program](file:C:/Program) Files\Milestone\MIPPlugins\ that is used by the Milestone applications and services. (But less sure.)

If you have the answer I would love to hear it from you..

When I echo “%ProgramFiles%” on the command line, it is “[c:\program](file:c:/program) files”.

What I expected was XProtect tries to look at the “[d:\program](file:d:/program) files\milestone\mipplugins” folder because I chose the D drive for the Milestone installation.

Thanks for the support and I think this issue has been resolved, but still I don’t understand why XProtect tries to find plugins on the C drive even though I explicitly chose the D drive.