Copy link to clipboard
Copied
Installed CF 2016 32 bit version (developer edition) on a Windows Server 2012 R2 64 bit. When trying to invoke a 32 bit C++ CFX tag I receive the message "The CFX custom tag CFX_XXXXX was not found in the custom tag database". The CFX tags are located in the CF_Root\cfusion\CustomTags directory. The CFX are registered in the CF Administrator. File permissions allow CF to access the directory. I have exhausted my ideas of what could be wrong! I don't have the problem in CF 11 (same setup, just CF 11 instead of CF 2016). Does anyone have any ideas?
Copy link to clipboard
Copied
Case-sensitive?
Copy link to clipboard
Copied
Case sensitivity doesn't appear to be the problem. Have tried exact DLL spelling; still doesn't work.
Copy link to clipboard
Copied
What about restarting ColdFusion?
Copy link to clipboard
Copied
Have restarted ColdFusion multiple times. Same results.
Copy link to clipboard
Copied
What about unchecking the option Save class files ​in the ColdFusion Administrator?
Copy link to clipboard
Copied
Going to stick with the simple questions. Is this Standard or Enterprise version. Are you running the cfusion instance as your production instance our did you create a new instance? If a new instance, it would need to be in that class path, not the cfusion one.
Copy link to clipboard
Copied
When we upgraded from CF5 to CF9 we could not get our custom CFX tags to work. We also used 32 bit C++ library (actually a Delphi library that was compatible with the C++ interface). After probably 30 days of R&D (maybe more) we gave up and wrote a service that communicated via a web service call on a localhost custom port. We took this route as for us it was easier to convert our app into a web service than rewrite it in Java.
Copy link to clipboard
Copied
Thanks for everyone's suggestions, but the only solution I have discovered thus far is to deploy ColdFusion (Enterprise Edition) as Development and not Production - Secure Profile. Initially installed CF 2016 on server as a Production - Secure Profile deployment.
I installed CF 2016 on my laptop as a Development deployment. The CFX C++ tags work when deployed as Development. Web site works. Web site continues to work when switched to Secure Profile on the Security tab in the CF Administrator and the CF service is restarted.
I unchecked Secure Profile on the server installation, restarted the CF service, but the CFX tags still cannot be located.
So, it appears when deploying CF 2016 in Production - Secure Profile something gets set under the covers that prevent CFX C++ tags from working. Perhaps the answer is to deploy as Development and switch to Secure Profile in the CF Administrator. If I discover additional information I will post it.
Copy link to clipboard
Copied
Switching servers, as you have done, is such a drastic step that I don't consider it a solution. We should look further.
Your last post contains a hint: you move from the Developer Edition to the Enterprise Edition. There are usually some differences between the two editions that could account for the problem. The paths are likely to be different. So, too, are the ColdFusion Administrator interfaces.
So make sure you define the custom tag paths for a ColdFusion instance in the Administrator of that instance. For example, below are the settings as defined in the Administrator of MyFirstCFInstance:
I clicked on Register C++ CFX. My input for the resulting interface was:
I had clicked on Browse Server to navigate to the location of the DLL. The path was C:/ColdFusion2016/MyFirstCFInstance/CustomTags/com/employee.dll. When I clicked on Submit, I got the following:
I then restarted the ColdFusion instance, MyFirstCFInstance.
Finally, the above suggestion assumes that your Application.cfc file contains no code of the form,
<cfset this.customtagpaths="C:\ColdFusion2016\cfusion\wwwroot\customtag">
This code overrides the custom tag paths that you define in the Administrator. So, you should either comment out such a line or set its value equal to the same directory as in the Administrator.