Skip to main content
Inspiring
May 9, 2008
Answered

DotNetExtension not installed

  • May 9, 2008
  • 5 replies
  • 4923 views
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:
http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=dotNet_07.html
<!--- 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"
class="System.Net.NetworkInformation.Ping">
<!--- Perform synchronous ping (using defaults) --->
<cfset pingReply=pingClass.Send(Arguments.host)>
<!--- Return result --->
<cfreturn pingReply.Get_Status().ToString()>
</cffunction>

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

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
This topic has been closed for replies.
Correct answer
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.

5 replies

BKBK
Community Expert
Community Expert
May 22, 2008
<var name="install_dir">
<string>D:\ISG\software\ColdFusion8DotNetService</string>
</var>


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

Correct answer
May 22, 2008
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.
Participant
March 4, 2009
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.
BKBK
Community Expert
Community Expert
May 14, 2008
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.

May 15, 2008
#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.
JaxSpace1Author
Inspiring
May 22, 2008
I double checked the file and it looks like I think it should:

<?xml version="1.0" encoding="UTF-8"?>
<wddxPacket version="1.0">
<header/>
<data>
<struct type="coldfusion.server.ConfigMap">
<var name="port">
<string>6085</string>
</var>
<var name="protocol">
<string>tcp</string>
</var>
<var name="install_dir">
<string>D:\ISG\software\ColdFusion8DotNetService</string>
</var>
</struct>
</data>
</wddxPacket>

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?
BKBK
Community Expert
Community Expert
May 12, 2008
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?



JaxSpace1Author
Inspiring
May 13, 2008
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"
class="System.Net.NetworkInformation.Ping"
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.
BKBK
Community Expert
Community Expert
May 11, 2008
Inspiring
May 10, 2008
is 'ColdFusion 8 .NET Service' started and running?

Azadi Saryev
Sabai-dee.com
http://www.sabai-dee.com/
JaxSpace1Author
Inspiring
May 12, 2008
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