Skip to main content
February 14, 2012
Answered

cfobject .net problem

  • February 14, 2012
  • 1 reply
  • 3246 views

Having a lot of trouble getting any .net DLL to be called via CFOBJECT...

This code from the docs (see below) should return a ping, but I get an error:  coldfusion.runtime.dotnet.ProxyGenerationException

This happens with any .net object.  I found this thread on google which seems related: 

http://www.houseoffusion.com/groups/cf-talk/thread.cfm/threadid:62305

It seems to have something to do with the dotnetcoreproxy.jar file being created the first time.  I cannot figure out how to get around this.....

I am running windows server 2007, CF 9.01 standard.  32 bit.  I've installed the 9.01 .net patch. 

===========

<!--- This function pings the specified host. --->

<cffunction name="Ping" returntype="string" output="false">

    <cfargument name="host" type="string" required="yes">

  

    <!--- Local variables --->

    <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()> -->

    <cfreturn pingReply.Status.ToString()>

</cffunction>

<h3>Ping Test</h3>

<cfoutput>

    localohost PING Status: #Ping("127.0.0.1")#<br>

</cfoutput>

==============

full error:

The error occurred in C:\inetpub\wwwroot\foo\z_ken5.cfm: line 1

1 : <cfobject type=".NET" name="proc" class="System.Diagnostics.Process">

stack trace

at cfz_ken52ecfm2071484578.runPage(C:\inetpub\wwwroot\parkmedicalcenters\z_ken5.cfm:1)

coldfusion.runtime.dotnet.ProxyGenerationException

    at coldfusion.runtime.dotnet.ProxyGenerator._executeProxyGen(ProxyGenerator.java:192)

    at coldfusion.runtime.dotnet.ProxyGenerator.executeProxyGen(ProxyGenerator.java:149)

    at coldfusion.runtime.dotnet.ProxyGenerator.generateProxy(ProxyGenerator.java:118)

    at coldfusion.runtime.dotnet.Assembly.generateProxy(Assembly.java:299)

    at coldfusion.runtime.dotnet.Assembly.loadClass(Assembly.java:250)

    at coldfusion.runtime.dotnet.Assembly.loadClass(Assembly.java:225)

    at coldfusion.runtime.dotnet.DotNetProxyFactory.getProxy(DotNetProxyFactory.java:78)

    at coldfusion.runtime.ProxyFactory.getProxy(ProxyFactory.java:65)

    at coldfusion.runtime.CFPage.createObjectProxy(CFPage.java:5002)

    at coldfusion.tagext.lang.ObjectTag.doStartTag(ObjectTag.java:427)

    at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2722)

    at cfz_ken52ecfm2071484578.runPage(C:\inetpub\wwwroot\parkmedicalcenters\z_ken5.cfm:1)

    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:231)

    at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:416)

    at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)

    at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:381)

    at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)

    at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)

    at coldfusion.filter.PathFilter.invoke(PathFilter.java:94)

    at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70)

    at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)

    at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)

    at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)

    at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)

    at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)

    at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)

    at coldfusion.CfmServlet.service(CfmServlet.java:200)

    at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)

    at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)

    at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)

    at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)

    at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)

    at jrun.servlet.FilterChain.service(FilterChain.java:101)

    at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)

    at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)

    at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)

    at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)

    at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)

    at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)

    at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)

    at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)

    at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

This topic has been closed for replies.
Correct answer

The server and CF are both 32 bit.  I have .net version 4 installed.

I found a workaround - I contacted the guy who had the identical issue mentioned in the thread here:  http://www.houseoffusion.com/groups/cf-talk/thread.cfm/threadid:62305

I copied the dotnetcoreproxy.jar file from his server (his file was created by doing a 64 bit .dll call initially).  When I copied that file over to my server, everything worked fine.

So it seems if the dotnetcoreproxy.jar file that gets created is flawed somehow if it is created initially with a 32 bit .dll call.  No idea why. Of anyone else runs into this issue, I would be happy to send you the file which solves the issue (or you can apparently just complie a 64 bit .dll and call it yourself, but I didn't know how to do this). 

1 reply

Inspiring
February 15, 2012

     >  I am running windows server 2007, CF 9.01 standard.  32 bit.

Are both are 32-bit or just CF?

       > I've installed the 9.01 .net patch.

Did you uninstall the old version first?

Which version of .net do you have installed 2, 3.5, ...4?

Correct answer
February 16, 2012

The server and CF are both 32 bit.  I have .net version 4 installed.

I found a workaround - I contacted the guy who had the identical issue mentioned in the thread here:  http://www.houseoffusion.com/groups/cf-talk/thread.cfm/threadid:62305

I copied the dotnetcoreproxy.jar file from his server (his file was created by doing a 64 bit .dll call initially).  When I copied that file over to my server, everything worked fine.

So it seems if the dotnetcoreproxy.jar file that gets created is flawed somehow if it is created initially with a 32 bit .dll call.  No idea why. Of anyone else runs into this issue, I would be happy to send you the file which solves the issue (or you can apparently just complie a 64 bit .dll and call it yourself, but I didn't know how to do this). 

Inspiring
February 16, 2012

Interesting. I thought it only applied when running on a 64 bit server. I am surprised uninstalling and deleting the cached jars, as mentioned in that thread,  did not do the trick. But anyway .. great that you have things up and running now (and thanks for posting the resolution).