12 Replies Latest reply on Jul 29, 2010 7:27 AM by Coos

    DotNetExtension not installed

    JaxSpace Level 1
      I am trying to set up a new CFMX8 server so that it may use .Net integration. The Windows 2K3 server has the .Net framework v2 installed, CFMX8 with the .Net integration installed, but when I try to access an example .cfm per:
      <!--- This function pings the specified host. --->
      <cffunction name="Ping" returntype="string" output="false">
      <cfargument name="host" type="string" required="yes">
      <!--- Local vars --->
      <cfset var pingClass="">
      <cfset var pingReply="">
      <!--- Get Ping class --->
      <cfobject type=".NET" name="pingClass"
      <!--- Perform synchronous ping (using defaults) --->
      <cfset pingReply=pingClass.Send(Arguments.host)>
      <!--- Return result --->
      <cfreturn pingReply.Get_Status().ToString()>

      <h3>Ping Test</h3>
      <cfoutput> #Ping("")#<br>
      www.adobe.com: #Ping("www.adobe.com")#<br>

      I get the following error:
      "DotNetExtension not installed.
      If a dll is specified in the assembly list, DotNetExtension must also be installed."

      Can someone shed a little light on this for me? Thank you in advance - Jacques
        • 1. Re: DotNetExtension not installed
          Level 7
          is 'ColdFusion 8 .NET Service' started and running?

          Azadi Saryev
          • 3. Re: DotNetExtension not installed
            JaxSpace Level 1
            Yes, the ColdFusion .Net Service is installed and running. I'm using the latest 8.01 install version. I chose to install it in a Multiserver config with all options except the LifeCycle Data Services. I've tried uninstalling and reinstalling just the ColdFusion .Net Integration service but as of yet can't seem to make the provided example work.
            I'm not particularly familiar with .Net but am still charged with providing my customers with the ability to interact with .Net once the server becomes 'active'. So basically I'm just going down the list, install OS, install IIS, install .Net framework, install CF8, verify everything works as expected. Am I missing the proverbial 'big red truck'? Thanks in advance for your help - Jacques
            • 4. Re:  DotNetExtension not installed
              BKBK Adobe Community Professional & MVP
              Hi Jacques,
              it isn't obvious to me either. What do the log files in {ColdFusion8_install_directory}\jnbridge\ say? Any change when you restart Coldfusion?

              • 5. Re:  DotNetExtension not installed
                JaxSpace Level 1
                For this installation I have to do the MultiServer install. If you install the ColdFusion multiserver configuration or the J2EE configuration, you can specify the directory in which to install the .NET Integration software, which in my case is "D:\CF8DotNetService". In this directory, the only log file is 'CF8DotNetsvc.log' and the only entry in it is from the last install:

                "09/05/2008 12:45:29 INFO: InstallService: Installed the service ColdFusion 8 .NET Service"

                In the cflogs\server.log I see the following:
                "Information","scheduler-9","05/13/08","12:34:38",,"Starting logging..."
                "Information","scheduler-9","05/13/08","12:34:38",,"Starting license..."
                "Information","scheduler-9","05/13/08","12:34:39",,"Enterprise Edition enabled"
                "Information","scheduler-9","05/13/08","12:34:39",,"Starting crypto..."
                "Information","scheduler-9","05/13/08","12:34:40",,"Installed JSafe JCE provider: Version 3.6 RSA Security Inc. Crypto-J JCE Security Provider (implements RSA, DSA, Diffie-Hellman, AES, DES, Triple DES, DESX, RC2, RC4, RC5, PBE, MD2, MD5, RIPEMD160, SHA1, SHA224, SHA256, SHA384, SHA512, HMAC-MD5, HMAC-RIPEMD160, HMAC-SHA1, HMAC-SHA224, HMAC-SHA256, HMAC-SHA384, HMAC-SHA512)"
                "Information","scheduler-9","05/13/08","12:34:40",,"Starting security..."
                "Information","scheduler-9","05/13/08","12:34:40",,"Starting scheduler..."
                "Information","scheduler-9","05/13/08","12:34:40",,"Starting WatchService..."
                "Information","scheduler-9","05/13/08","12:34:40",,"Starting debugging..."
                "Information","scheduler-9","05/13/08","12:34:40",,"Starting sql..."
                "Information","scheduler-9","05/13/08","12:34:43",,"Pool Manager Started"
                "Information","scheduler-9","05/13/08","12:34:43",,"Starting mail..."
                "Information","scheduler-9","05/13/08","12:34:43",,"Starting runtime..."
                "Information","scheduler-9","05/13/08","12:34:43",,"CORBA Configuration not enabled"
                "Information","scheduler-9","05/13/08","12:34:43",,"Starting cron..."
                "Information","scheduler-9","05/13/08","12:34:44",,"Starting registry..."
                "Information","scheduler-9","05/13/08","12:34:44",,"Starting client..."
                "Information","scheduler-9","05/13/08","12:34:44",,"The metrics service is disabled for the J2EE edition"
                "Information","scheduler-9","05/13/08","12:34:44",,"Starting xmlrpc..."
                "Information","scheduler-9","05/13/08","12:34:45",,"Starting graphing..."
                "Information","scheduler-9","05/13/08","12:34:45",,"Starting verity..."
                "Information","scheduler-9","05/13/08","12:34:45",,"Starting archive..."
                "Information","scheduler-9","05/13/08","12:34:45",,"Starting document..."
                "Information","scheduler-9","05/13/08","12:34:46",,"Starting eventgateway..."
                "Information","scheduler-9","05/13/08","12:34:47",,"Starting FlexAssembler..."
                "Information","scheduler-9","05/13/08","12:34:47",,"Starting .NET..."
                "Information","scheduler-9","05/13/08","12:34:47",,"Starting Monitoring..."
                "Information","scheduler-9","05/13/08","12:34:49",,"ColdFusion started"

                So it *seems* like it should be chatting. When I perform a netstat I see the ports are alive:
                TCP dev0-henry:6085 dev0-henry.company.local:0 LISTENING
                TCP dev0-henry:6086 dev0-henry.company.local:0 LISTENING

                One change I've made is changing the original test code to include the 'assemby' attribute such that the call is now:
                <cfobject type=".NET" name="pingClass"
                assembly = "C:/Net/Assemblies/system.dll">

                Although this is where I've copied the framework .dll's and the process has full rights to the directory, I get:
                "Class System.Net.NetworkInformation.Ping not found in the specified assembly list."

                I can't tell if I'm getting closer or further from an answer. Any/all help is very much appreciated. Thank you.
                • 6. Re:  DotNetExtension not installed
                  BKBK Adobe Community Professional & MVP
                  Let's rule out some basics.

                  1) Any luck when you switch off the firewall and/or proxy?
                  2) On my single-server Coldfusion installation, the system file {CF8_installation}/lib/neo-dotnet.xml contains the following information:

                  port: 6085
                  protocol: tcp
                  install_dir: C:\ColdFusion8\jnbridge

                  Verify your own settings.

                  • 7. Re:  DotNetExtension not installed
                    ksmith Level 1
                    #2 is most likely the answer.
                    I got the same errors with my multi-server installation. My neo-dotnet.xml had install_dir=C:\Work\CF\depot\ColdFusion\cf_main\cfusion\jnbridge which is clearly a path from the CF developer's and not my install_path. After updating to the jnbridge directory of my installation and restarting cf appserver my dotnet pages work.
                    • 8. Re:  DotNetExtension not installed
                      JaxSpace Level 1
                      I double checked the file and it looks like I think it should:

                      <?xml version="1.0" encoding="UTF-8"?>
                      <wddxPacket version="1.0">
                      <struct type="coldfusion.server.ConfigMap">
                      <var name="port">
                      <var name="protocol">
                      <var name="install_dir">

                      The install_dir listed is in fact where the service is installed. I even gone as far as reimaging and reinstalling everything from scratch, twice. So my results are repeatable, now I just need to figure out what in the process is 'breaking' the dotNet integration. Any other thoughts?
                      • 9. Re:  DotNetExtension not installed
                        BKBK Adobe Community Professional & MVP
                        <var name="install_dir">

                        You suggested earlier that the service is installed in D:\CF8DotNetService.

                        • 10. Re:  DotNetExtension not installed
                          SOLUTION: Oddly enough, where the service was installed was at the root of the problem.

                          After the CF Service (CFusion JRun instance) was installed, for security reasons it is assigned to run under a service account. This service account did not have access to the directory where the CFdotNetService was installed. Hence it did not believe that it was installed. Oddly enough there were no 'file not found' or permission errors logged.

                          Thank you for your assistance.
                          • 11. Re:  DotNetExtension not installed
                            Just in case others are having this issue (about the Class not found in the specified assembly list), here was my solution.

                            On our live server, Coldfusion .NET integration was installed with .NET 1.0. When we upgraded to .NET 2.0 and tried to run a .NET class for the first time, we would get that error. .NET page ran fine, just the <cfobject> would throw that error. The solution was to totally uninstall the .NET integration piece (since it was using 1.0) and re-install the latest version. Not a permissions issue in this case.
                            • 12. Re:  DotNetExtension not installed
                              Coos Level 1

                              I was originally getting the "DotNetExtension not installed" error and changed the install directory in neo-dotnet.xml to the correct location. Afterwards, I received  "java.lang.ClassNotFoundException" even though my dll was in the correct place. I had to put a try/catch around the cfobject call to see this error because the default cf error page was simply showing the assembly's class name and not anything of use.


                              Then I found http://blog.daksatech.com/2010/05/coldfusion-net-integration-service-on.html  and copied dotnet_coreproxy.config from the cfusion instance to all of my cf instances, restarted the instances and everything worked. This file is located in \JRun4\servers\cfusion\cfusion.ear\cfusion.war\WEB-INF\cfusion\lib\.


                              I have a feeling these issues and others may have happened because

                              1. CF 8 may have originally been installed as a developer edition before we entered the serial number.
                              2. The cf .net integration may have been installed after we created multple cf instances. Its installer may not install everything to all of the instances on the server, or if you add more instances after the .net integration was installed, the new instances may not have the necessary configuration file(s).
                              3. Additionally, the .Net framework had been upgraded a few times since the cf .net integration was originally installed. I've read on a few blogs that you need to uninstall/reinstall the cf .net integration when upgrading the .net framework.



                              To summarize, if running multiple instances:

                              1. Uninstall/Reinstall the Coldfusion .net integration (in case the .net framework had been upgraded) and note the installation directory. I chose the standalone option.
                              2. Find neo-dotnet.xml in  \JRun4\servers\cfusion\cfusion.ear\cfusion.war\WEB-INF\cfusion\lib\ . Make sure the install_dir is the same as noted in step 1. Mine was D:\ColdFusion8DotNetService.
                              3. Copy neo-dotnet.xml to all cf instances.
                              4. Copy dotnet_coreproxy.config in \JRun4\servers\cfusion\cfusion.ear\cfusion.war\WEB-INF\cfusion\lib\ to all instances.
                              5. Restart all cf instances.