Sorry for the long post.
We have Dynamics AX 2012 R3 CU10 running with retail POS at remote stores.
We need to access some legacy data for validation from POS since we have stores on two systems, legacy POS and dynamics POS. W were told by Microsoft to extend real time transaction services to call a new method in x++ that should reference a c# dll that then references a soap service on our network in order to validate the legacy data to meet our need from the POS.
The problem we have encountered is related to the .dll resolution from within x++ on AOS server that is relayed from IIS real time service.
According to everything posted that I have read far and wide, we should compile our c# project as release build/x64 and deploy to AOT which we did successfully and we can see it in AOT. We then were instructed to create a test job in AOT to call the service which we did and it works.
Our problem occurs when the call is made from the POS to the new method such as this example InvokeExtension("TestMethod", "ThisTest"); When this executes, we get the old ClrObject not created error exception on the statement where we attempt to create an instance of our .dll from x++ on AOS server. We don't have connectivity issues or anything like that. The system works and I can sell items and sync into central AX both ways. This is new functionality we are building.
I have insured that the .dll is in VSAssemblies folder of the AOS server bin area. I have done a full compile, full CIL, deleted and rebuilt Xppil multiple times. Switched hot swapping on and off. Restarted AOS multiple times. Added the .dll to the bin folder in addition to the VSAssemblies folder. Registered the .dll in the GAC and not.
We had to copy the .dll into the folder where real time service .dlls are located. ( C:\Program Files (x86)\Microsoft Dynamics AX\60\CDX\Real-time Services\6.3\Bin ).
Can anyone offer insight as to why this is what we are having to do with documentation to back it up? Please no guessing or asking me to try this as I assure you, I have tried everything as we've been on this system going on 2 years at approximately 100 locations.
Adding c# project to AOT is a good way to go but not mandatory. It is enough to add it to client\bin and server\bin folders. Code executed on the server look for DLL in the server bin folder and in GAC. Client code looks at client bin folder. If it works from x++ job it means that client can find DLL but it does not mean that this DLL is on the server. Code invoked by realtime server is executed on the server, so easiest way would be to drop DLL to server\bin folder for each AOS you have.
Unfortunately we tried all of this and it does not work as per the documentation but it does work if we put the .dll in the IIS real time service install bin folder.
I would like to know why we are having to do this as it does not match the documentation and posts from the web that I have read.
Business Applications communities