cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1165
Views
0
Helpful
0
Comments
cdnadmin
Level 11
Level 11
This document was generated from CDN thread

Created by: GEOFFREY THOMPSON on 14-02-2013 02:02:19 PM
Greetings,
We have a VB.NET application running at a big customer that is currently on the 7.5(10) platform on Windows Server 2003. This application is written in Visual Studio 2005 and works as a bridge server monitoring all events and provides an agent greeting service. The customer has a number of CUCM clusters and an even larger number of PGs, and there is an agent greeting service for each CTIOS, running on its own server.
We are upgrading this customer to 8.5.(4) on Windows Server 2008 R2 x64 this year and have built a new lab to prototype the end state. There is an additional production lookalike lab that remains unchanged. The new lab is fairly extensive - to mirror production - with duplexed Roggers, two HDS, two Distributo AWs, 4 CUCM clusters, 4 duplexed Agent PGs, 4 CVP Call Servers with two pairs of duplexed PGs, a pair of SIP Proxies, a pair of CUIC servers, Unity Connection, a Calabrio cluster and an Exony cluster. There are three machines dedicated as agent greeting servers to run a port of the existing server-side application.
I have installed the 8.5.4 Toolkit on my build machine and recompiled the applications with the latest Toolkit libraries and deployed to the Windows Server 2008 R2 x64 machine to test. The Windows Server 2008 R2 x64 machine has the 8.5.4 CTIOS Toolkit installed. The application fails to run on the server.
I have also deployed the application to a Windows 7 x32 machine where connects to the 8.5.4 CTIOS and it works perfectly.
On the Windows Server 2008 R2 x64 machine, the program will not start and throws up an dialog. This shows the details of the program (version number) and the "problem signature". The Event Name is CLR20r3 (fairly well known according to Google) and problem ID of System.InvalidOperationException.
I tested the Outbound Soft Phone in the CTIOS Toolkit\Win32 CIL\Samples directory and that works correctly on the server.
If I try the ctiosphone.exe also in the CTIOS Toolkit\Win32 CIL\Samples directory it fails with the same error. I have experimented with running the application in XP compatibility mode, but the same problem occurs.
I checked the BOM and Wndows 7 x64 is supported for CTIOS 8.5 toolkit applications, so I feel that it should be ok on a R2 x64 box.
Has anyone experienced th same problems running CTIOS Toolkit applications on Windows Server 2008 R2 x64? Do you know of a solution?
Any assistance is appreciated.
Regards,
Geoff

Subject: RE: New Message from GEOFFREY THOMPSON in Computer Telephony Integration Ob
Replied by: GEOFFREY THOMPSON on 14-02-2013 02:30:26 PM
Can I try again so it’s readable?

We have a VB.NET application running at a big customer that is currently on the 7.5(10) platform on Windows Server 2003. This application is written in Visual Studio 2005 and works as a bridge server monitoring all events and provides an agent greeting service. The customer has a number of CUCM clusters and an even larger number of PGs, and there is an agent greeting service for each CTIOS, running on its own server.

We are upgrading this customer to 8.5.(4) on Windows Server 2008 R2 x64 this year and have built a new lab to prototype the end state. There is an additional production lookalike lab that remains unchanged. The new lab is fairly extensive - to mirror production - with duplexed Roggers, two HDS, two Distributor AWs, 4 CUCM clusters, 4 duplexed Agent PGs, 4 CVP Call Servers with two pairs of duplexed PGs, a pair of SIP Proxies, a pair of CUIC servers, Unity Connection, a Calabrio cluster and an Exony cluster. There are three machines dedicated as agent greeting servers to run a port of the existing server-side application.

I have installed the 8.5.4 Toolkit on my build machine and recompiled the applications with the latest Toolkit libraries and deployed to the Windows Server 2008 R2 x64 machine to test. The Windows Server 2008 R2 x64 machine has the 8.5.4 CTIOS Toolkit installed. The application fails to run on the server.

I have also deployed the application to a Windows 7 x32 machine where connects to the 8.5.4 CTIOS and it works perfectly.

On the Windows Server 2008 R2 x64 machine, the program will not start and throws up an dialog. This shows the details of the program (version number) and the "problem signature". The Event Name is CLR20r3 (fairly well known according to Google) and problem ID of System.InvalidOperationException.

I tested the Outbound Soft Phone in the CTIOS Toolkit\Win32 CIL\Samples directory and that works correctly on the server.

If I try the ctiosphone.exe also in the CTIOS Toolkit\Win32 CIL\Samples directory it fails with the same error. I have experimented with running the application in XP compatibility mode, but the same problem occurs.

I checked the BOM and Windows 7 x64 is supported for CTIOS 8.5 toolkit applications, so I feel that it should be ok on a R2 x64 box.

Has anyone experienced the same problems running CTIOS Toolkit applications on Windows Server 2008 R2 x64? Do you know of a solution?

Regards,
Geoff

Subject: RE: New Message from GEOFFREY THOMPSON in Computer Telephony Integration Ob
Replied by: David Lender on 14-02-2013 02:34:26 PM
Did you install 8.0(1a) first?  From the UCCE 8.5(3) Release Notes here  http://www.cisco.com/en/US/docs/voice_ip_comm/cust_contact/contact_center/ipcc_enterprise/ipccenterprise8_5_3/release/notes/icm85_3rlsnts-1.pdf

Release 8.5(3) is a required update if you plan to install Unified CCE on the Windows
Server 2008 R2 operating system. For Windows Server 2008 R2 support, the Unified CCE Release
8.0(1a) major release must first be installed. Service Pack 1 (SP1) of Windows Server 2008 R2 is
required.

I don’t understand why the Outbound Option Softphone works ok but the ctiosphone does not.  Does the CTIOS Agent Desktop work on the server?

Subject: RE: New Message from David Lender in Computer Telephony Integration Object
Replied by: GEOFFREY THOMPSON on 14-02-2013 02:43:26 PM
David,

Thanks for replying. Yes, I did start with the 8.0(1a) installer, installed the Toolkit (no Java) only, then applied 8.5.4. I have done this install so many times I have lost count.

I cannot tell if the Agent Softphone works, because I did not install that - just the Toolkit. But let me try again on another one of the test machines, doing a full client install.

Regards,
Geoff

Subject: RE: VB.NET CTIOS 8.5.4 application fails to run on Windows Server 2008 R2 x
Replied by: GEOFFREY THOMPSON on 14-02-2013 03:18:55 PM
David,
 
I went to another machine and installed the full CTIOS client from the 8.0.1a installer then applied the 8.5.4 Maintenance Release.
 
Attachments
First screen shot - Agent Soft Phone logged into PG in the not ready state
Second screen shot - trying to run ctiosphone.exe
Regards, Geoff

Subject: RE: VB.NET CTIOS 8.5.4 application fails to run on Windows Server 2008 R2 x
Replied by: GEOFFREY THOMPSON on 14-02-2013 03:23:04 PM
OK, it orders the attachments alphabetically - so what I called "first" is actually showing up in my post as "second". This forum software is a challenge, but small beer compared to my CTIOS Toolkit problem.
Regards,
Geoff

Subject: RE: VB.NET CTIOS 8.5.4 application fails to run on Windows Server 2008 R2 x
Replied by: GEOFFREY THOMPSON on 14-02-2013 03:27:17 PM
Details of the error dialog - I have to scroll to display it all - so three screenshots.

Subject: RE: VB.NET CTIOS 8.5.4 application fails to run on Windows Server 2008 R2 x
Replied by: David Lender on 14-02-2013 04:56:08 PM
It does NOT look like Windows Server 2008 R2 is supported for a CTIOS Client.
See the CTI Supported Platforms section 7.6 of the UCCE 8.5(x) Bill of Materials here   http://www.cisco.com/en/US/docs/voice_ip_comm/cust_contact/contact_center/icm_enterprise/icm_enterprise_8_5/reference/guide/icm85_bom.pdf  
For the Client platform Windows XP, Vista, Windows 7 and RedHat Linux are supported.  
The only suggestion I have is to check the build settings on your application to ensure it is built for AnyCPU.    

Subject: RE: New Message from David Lender in Computer Telephony Integration Object
Replied by: GEOFFREY THOMPSON on 14-02-2013 05:17:26 PM
Thanks David,

I looked at the BOM, naturally. But it’s surely an oversight – with a client focus. No Windows Servers are mentioned at all (for example, Server 2003).

But many customers have built applications to work as “all events bridge” applications and do have them running on servers. My current customer is happily running the current CTIOS application on a number of Windows 2003 Servers.

I’m intrigued by “The only suggestion I have is to check the build settings on your application to ensure it is built for AnyCPU”.

Is that in Visual Studio?

Can you understand why Soft Phone works but ctiosphone.exe does not.

Regards,
Geoff

.

Subject: RE: VB.NET CTIOS 8.5.4 application fails to run on Windows Server 2008 R2 x
Replied by: Shannon McCoy on 14-02-2013 05:17:36 PM
David Lender:
It does NOT look like Windows Server 2008 R2 is supported for a CTIOS Client.
See the CTI Supported Platforms section 7.6 of the UCCE 8.5(x) Bill of Materials here   http://www.cisco.com/en/US/docs/voice_ip_comm/cust_contact/contact_center/icm_enterprise/icm_enterprise_8_5/reference/guide/icm85_bom.pdf  
For the Client platform Windows XP, Vista, Windows 7 and RedHat Linux are supported.  
The only suggestion I have is to check the build settings on your application to ensure it is built for AnyCPU.    

 
Windows Server 2008 R2 and Windows 7 are the same thing. They are comptible down the drivers and service packs. In fact most devices don't Windows Server drivers because it is assumed that you will be using the Windows 7 drivers. The service pack is the EXACT same executable. Windows Server 2008 ( non R2 ) has the same compatibility with Windows Vista. That is the difference between 2008 and 2008 R2.

Subject: RE: New Message from Shannon McCoy in Computer Telephony Integration Object
Replied by: GEOFFREY THOMPSON on 14-02-2013 05:29:26 PM
Shannon,

Thanks for chiming in. My thinking also – it specifically says in the BOM that Windows 7 x64 is supported.

Regards,
Geoff

Subject: RE: VB.NET CTIOS 8.5.4 application fails to run on Windows Server 2008 R2 x
Replied by: Shannon McCoy on 14-02-2013 05:37:38 PM
The VB CTIOS phone uses a lot of antiquated technologies like old school ActiveX and older WinPCap so there might be a dll issue and also with newer versions of .NET installed like 4.0 and 4.5 sometimes it gets confused which version you actually want and CRL2 gacks. You have to create a change the .config file to include some directives to tell it exactly which CLR you want to use and it clears up. Sometimes the InvalidOperation is when its trying to execute against the wrong CLR or can't load the satellite assemblies its looking for.
Here is an example of the mod I had to do to the config file for MS Lync API on .NET 4.0/4.5 because of a similar issue without this mode the app would blowup every time it got to calling the legacy code because it uses lazy loading.
<?xml version="1.0"?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
  </startup>
</configuration>

Subject: RE: New Message from GEOFFREY THOMPSON in Computer Telephony Integration Ob
Replied by: GEOFFREY THOMPSON on 14-02-2013 05:41:26 PM
David wrote: “The only suggestion I have is to check the build settings on your application to ensure it is built for AnyCPU”.

OK, I see that in Visual Studio – the setting in the build options under “Advanced Compiler Settings” for “Target CPU”.

It is set to AnyCPU.

Regards,
Geoff

Subject: RE: New Message from Shannon McCoy in Computer Telephony Integration Object
Replied by: GEOFFREY THOMPSON on 14-02-2013 05:44:26 PM
I found it fascinating that the old Soft Phone with its “antiquated” ActiveX components runs just fine, but a simple console application built in VB.NET with all the GAC stuff fails.

Regards,
Geoff

Subject: RE: VB.NET CTIOS 8.5.4 application fails to run on Windows Server 2008 R2 x
Replied by: Shannon McCoy on 14-02-2013 05:48:30 PM
David Lender:
It does NOT look like Windows Server 2008 R2 is supported for a CTIOS Client.
See the CTI Supported Platforms section 7.6 of the UCCE 8.5(x) Bill of Materials here   http://www.cisco.com/en/US/docs/voice_ip_comm/cust_contact/contact_center/icm_enterprise/icm_enterprise_8_5/reference/guide/icm85_bom.pdf  
For the Client platform Windows XP, Vista, Windows 7 and RedHat Linux are supported.  
The only suggestion I have is to check the build settings on your application to ensure it is built for AnyCPU.    

Actually I would try forcing it to x86 instead of any CPU to try and force it to the Wow32 mode. Some things don't like to run in x64 because of the thunk layer or satillite assemblies that are not compatible, but if you specify x86 is will stay a 32bit app and avoid those problems. This is also why you don't run Office 64bit if you want to use cut and paste between apps with OLE. Because the OLE subsystem code is 32 bit assembler code that freezes and even though MS knows it, its to complicated to fix and they have not bothered. They told me do load 32 bit office if I want to cut and paste things like Visio diagrams in my Word docs. There are lots of these little pitfalls and even MS can't escape them.

Subject: RE: New Message from Shannon McCoy in Computer Telephony Integration Object
Replied by: Shannon McCoy on 14-02-2013 05:55:25 PM
GEOFFREY THOMPSON:
I found it fascinating that the old Soft Phone with its “antiquated” ActiveX components runs just fine, but a simple console application built in VB.NET with all the GAC stuff fails.

Regards,
Geoff

 
Yes that is because it is already compiled and built on the old system. When you rebuild it all the newer stuff comes into play. I did a bunch of stuff with 8.0 but haven't tried 8.5 yet and it worked fine on 2k8R2. It just depends on what the new quirks are.   And there is nothing wrong with sitting around listening to Sound Garden in your "grunge" shirt, 3 days since your last shower to get in the right headspace to reach ActiveX VB6 Nirvana. (pun intended ). Peace!

Subject: RE: New Message from Shannon McCoy in Computer Telephony Integration Object
Replied by: GEOFFREY THOMPSON on 14-02-2013 10:18:26 PM
I ran another CTIOS application I have – this one has no GUI and is console based. Because it runs from the command line, it shows more of what may be happening in trace. It says:

Unhandled Exception: System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {E06D9955-E730-11D4-9D3C-0010B5522A44} failed due to the following error: 80040154.

That seems to imply that it’s not an issue with the x64 architecture, but something amiss with the registration of the COM objects (speculation).

Regards,
Geoff

Subject: RE: New Message from Shannon McCoy in Computer Telephony Integration Object
Replied by: Shannon McCoy on 15-02-2013 02:16:02 AM
GEOFFREY THOMPSON:
I ran another CTIOS application I have – this one has no GUI and is console based. Because it runs from the command line, it shows more of what may be happening in trace. It says:

Unhandled Exception: System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {E06D9955-E730-11D4-9D3C-0010B5522A44} failed due to the following error: 80040154.

That seems to imply that it’s not an issue with the x64 architecture, but something amiss with the registration of the COM objects (speculation).

Regards,
Geoff

 
Actually a quick google of that error will tell you to check and make sure you have the dll registered with regsvr32.exe and also to use Corflags.exe or build for a 32bit environment. This is exactly what happens when windows trys to run your 32bit dll in a 64bit app.
 
Here is part of a thread on msdn talking about the same issue
http://social.msdn.microsoft.com/forums/en-US/vbgeneral/thread/88a6ea68-f476-4231-822f-27fabe59f458/
 
Greetings,
I have a VB.NET application that references a 3rd party Com component. The file is Interop.WINTSRRLIB.dll. My VB.NET application has a project reference to the COM comonent which lives in the directory: C:\WaveTracker.
The application runs fine. When I sent it to my customer, he installed in on his desktop machine. It runs fine. Then he copied all of the application files (which live in C:\WaveTracker) to his laptop. However, on his laptop, he gets the error:
"System.Runtime.InteropServices.COMException (0x80040154). Retrieving the COM class factory for component xxxx failed due to the following error: 80040154"
The customer swears he has the .NET 2.0 Framework installed properly on his laptop. Any ideas on how I can get over this problem???
Kind Regards,
 
Scott
 
It sounds like your app is running in 64-bit mode. That would be automatic if it is a .NET app. Use Corflags.exe or Build + Platform Target to force it to run in 32-bit mode.



Corflags worked like a charm. .NET was indeed trying to force it to run as a 64bit app. Running corflags with the /32bit+ switch modified the .exe properties and allowed for the app to start and connect without incident. Thanks so much - appreciate your quick (and accurate) response!


Here is another one titled Calling 32-bit COM object fails 80040145 that says the same thing. That you can't call 32bit inproc COM dlls from 64bit .NET apps because you cannot load 32bit dlls into a 64bit process. You have to change your app to target x86 specifically if you want to do this.
 
http://social.msdn.microsoft.com/forums/en-US/netfx64bit/thread/46476e78-33c5-41a0-b7ea-0bb0dcb39782/

Subject: RE: New Message from Shannon McCoy in Computer Telephony Integration Object
Replied by: GEOFFREY THOMPSON on 15-02-2013 11:18:48 AM
Shannon,  
 
I owe you a huge vote of thanks for following up and pointing me in the right direction. Holy smoke - this has been just a fantastic exchange.  
 
So in fact I went back into Visual Studio and changed the Target CPU from "AnyCPU" to "x86" and recompiled. The console application stopped throwing the exception, but then revealed an issue reading the registry (under HKL\Software\Hewlett-Packard\xxx) so I had to duplicate the Key under Wow6432Node (and noticed some Cisco keys there, obviously doing the same thing) and change my code to read from that different key. Now the console application worked correctly, employing the Cisco libraries, including CTIOS Logging, where I use this library to control my own trace files.  
 
Then I made similar changes to the GUI that acts as a launcher for the console-based applications and now it appears to work. I will have to do a round of testing of course to ensure that the actual mechanism works with CTIOS 8.5.4 but I'm very happy to do that. Maybe Cisco brought back Single-Step Conference. OK, perhaps that's being too optimistic.  
 
Thank you once again Shannon.  
 
(Looks like Cisco should compile ctiosphone.exe as x86)  
 
Regards, Geoff

Subject: RE: New Message from Shannon McCoy in Computer Telephony Integration Object
Replied by: Shannon McCoy on 15-02-2013 07:40:24 PM
You are most welcome Geoff, glad to see that you found a solution to your woes. If you have the time perhaps you should do a post on "how to " and list the changes you made so that others with less experience can avoid the same trap. I admire your tenacity in not taking "its not in the BOM" as an answer when you know better technically. One of the things we do as integrators is to push the limits of what is possible to make the product better. Kudos.
Shannon

Subject: RE: New Message from Shannon McCoy in Computer Telephony Integration Object
Replied by: David Lender on 18-02-2013 05:05:38 PM
GEOFFREY THOMPSON:

 
(Looks like Cisco should compile ctiosphone.exe as x86)  
 
Regards, Geoff

 
I have duplicated the issue on my Windows 7 machine  (ctiosphone.exe will not run).  I rebuilt the application specifying Target CPU as "x86" and ctiosphone ran fine so that does appear to be the solution.  I will get a bug fix included in a subsequent release.

Subject: RE: New Message from David Lender in Computer Telephony Integration Object
Replied by: GEOFFREY THOMPSON on 19-02-2013 06:24:35 AM
Thank you, David. Opening a bug report on this and getting it into your system may help others who have issues with VB.NET Toolkit applications on x64 architectures.

Regards,
Geoff
Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Quick Links