Archived Forum Post

Index of archived forum posts

Question:

chilkatdotnet45 not working on GoDaddy shared Server - I cannot change IIS AppPool to "Enable 32-bit Applications"

Jan 16 '17 at 13:02

I'm deploying a website that uses Chilkat45 encryption. I have it all working and when I go to deploy to our GoDaddy account, I get the 64Bit/32Bit error/resources missing error. I used the 32Bit version locally (through Visual Studio 2015) and set the Boolean flag in my application pool in IIS to allow "Enable 32 Bit Applications" and it worked. (This is how to set it - Open IIS, expand Application Pools, select the Application Pool being used, click "Advanced Setting" and the second line item is "Enable 32-Bit Applications". It is set to false by default, I set it to true and everything works.)

On GoDaddy's site, I can not change the "Application Pool" settings. They do not have the Visual C++ 2012 Redistributable Pack installed on their server, which is causing the dependency error as far as i know.

How do I get around this? Thanks So much for your time. I am up against it as the encryption piece of my app took way longer than I wanted it to and now have to get this thing running by the end of next week. I do not relish having to come up with another way to do encryption and signing...


Answer

Hello, to do that you need to get a didicated server or VPS to do what u want o it and to install the full required packages for your project.

because a lot of Hosting service not allow every body to execute some scripts and libraries.


Answer

There are a number of issues, and I'll describe each. However, I'll first give you my recommendation for the longer term.

Here's my recommendation: Move your IIS hosting to Amazon EC2. For pricing, see https://aws.amazon.com/ec2/pricing/reserved-instances/pricing/

I doubt you'd need anything more than a t2.micro instance where the pricing is $124 up-front for 3YRs. Basically, the cost is negligible.

You get your own Windows operating system. It's a virtual machine on a shared server, but it's your own Windows operating system where you manage your own IIS and can do anything you wish. You would use Remote Desktop to do your work just like it's your own machine.

With GoDaddy, you're sharing a single Windows operating system with one IIS with many other websites (other people/organizations/companies), whereas with EC2, a single server is hosting many virtual Windows operating systems. You get your own entire operating system.

So... my suggestion may seem overkill for solving this one problem, but for the long term I believe it solves innumerable future problems where you may find yourself constrained by various limitations.


Regarding this problem on GoDaddy: I don't know if it's solvable. It depends on how much GoDaddy is willing to cooperate and help.

The 32-bit vs. 64-bit is not really the issue. You could build your app for 64-bit by modifying your Visual Studio project settings and unchecking the "Prefer 32-bit" checkbox. You could also explicitly target 64-bit. In both cases you would reference the 64-bit Chilkat Assembly, and upload/publish to GoDaddy.

(Note: Chilkat is a native implementation, and will always be a native implementation because it is written in C++. The intent is that the identical C++ implementation is offered cross-language and cross-platform. Typically, API's that are cross-platform are confined to the particular language. For example, something written in Java is cross-platform, but the entire implementation is coded in Java, and therefore it's only available in Java. One can't use that implementation in Perl. And if the identical API was somehow implemented in Perl, one can't be assured it would behave the same.)

The next issues is the VC++ redist requirement. On Windows, this is the equivalent of Linux or MacOSX of needing the "C" and "C++" runtime libs. If a Linux or MacOSX box did not already have the .so's or .dylib's for the runtime libs, nothing would work. Likewise, I can't understand why Microsoft doesn't automatically install all VC++ runtime libs via Windows update. It would save millions of people time and grief all over the world. (Unless the implicit goal is to create pain to push people towards what Microsoft wants, as opposed to what the customer wants. But I digress...)

The VC++ runtime lib that is required coincides with the Chilkat build being used. For example, if using the Chilkat .NET 4.6 assembly (that was built with VS2015), you would need the VC++ 2015 redist. See http://cknotes.com/chilkat-net-assemblies-matching-visual-studio-versions-to-net-framework-versions-to-vc-runtime-versions/

If you're using VS2015 and using the Chilkat assembly for it, then I would think you would need the VC++ 2015 runtime (not the 2012 runtime).

Finally: Because the Chilkat assembly contains native code (it is mixed-mode assembly, meaning the outer layer is managed, but the inner core is native code), it requires IIS full trust. Your shared hosting account is almost certainly limiting you from loading such assemblies because it's restricted to Medium Trust. This is where you would need cooperation and help from GoDaddy. See http://www.chilkatforum.com/questions/2797/installing-chilkat-net-on-a-web-server-for-aspnet