Copy link to clipboard
Copied
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)
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 someho
...Copy link to clipboard
Copied
> 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?
Copy link to clipboard
Copied
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).
Copy link to clipboard
Copied
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).
Copy link to clipboard
Copied
I did try clearing out the cached jars, uninstalling the CF .NET, reinstalling 9.01, rebooting....actually ran through that a couple times in every permutation I could think of. No matter what I tried, as soon as I called the simplest .net DLL (even the ones from the documentation examples), the .jar file that got created just plain did not work. Very, very odd!
I'm keeping a copy of the "good" .jar around somewhere safe, because I can see needing this down the road if we ever move to another server!