ThinkGeo.com    |     Documentation    |     Premium Support

Dll location in porting to the cloud

 We are trying to port our websitte to AppHarbor, a Cloud service, but we have run into a problem with MySql in that the Connector installs the dll (My.Sql.Data.dll) in the Program Files directory, which we cannot do on AppHarbor.  When we asked AppHarbor suppor how to get around this issue, this is what they had to say,


Hi Al



In general, you shouldn't rely on dll's being present in random  places on your file system for builds to succeed and dependencies should be  committed along with the rest of your code. In this case, you should probably  looking into adding the MySQL connector dependency by way of Nuget: 
nuget.org/packages/MySql.Data



Let  us know if that doesn't work out for you.

Michael


We expect the same issue to arise with the WebEdition dlls, some of which are in systems directories.  


Do you have a suggestion on how to install the Web Edition on the cloud using only dlls in our code?


Thanks,


Al Vigil



Hi Al, 

This is dependent on the Map Suite functionality you have implemented within your application as there are several dlls stored in the Windows\System32\Map Suite 5.5 folder that allow Map Suite to perform certain functions.


Please see our Map Suite Web Deployment guide for a listing of the functions that these dlls provide: wiki.thinkgeo.com/wiki/Map_S...ment_Guide


If you are not utilizing these functions you should not need this folder to be deployed to your server.



We do not use any of the functions that are your merge module.  My concern is with licensing.  Does licensing involve a dll not part of the core?(MapSuiteCore.DLL NetTopologySuite.DLL and WebEdition.dll, plus GeoAPI.dll).  I remember having to run an installation program of some kind on our production server and I remember hearing that it installed some dlls in System32 directory. 
  
 In the Cloud we do not have access to System32 directory nor can we run any kind of installation program.  All dlls are required to be part of our code, in our own directories, not in some random location. 
  
 Can you address this issue for me, please? 
  
  
 Al Vigil

Hi Al,  
  
 You are correct that with the Web Edition there is a Production Server License that needs to be installed on the server to remove the ‘Unlicensed for Runtime’ watermark.

Can we install it with our code, in the bin directory, along with the other dlls?  We have no way of installing any dlls located outside our code on the Cloud.  If not, can you suggest a workaround this issue?

I am not aware of workaround for this issue as the location of the license is specific and would require modified dlls to facilitate reading from this other location.

So basically what you are saying is that it is not possible to port our application to the Cloud?  Can we pay you to modify the dlls so that it can be?

Is is not possible to deploy your application to a Platform as a Service framework as the Map Suite Web licensing model is not designed for this type of deployment and cannot easily be modified to support this setup.  
  
 We have customers that have deployed their applications to servers hosted in a cloud environment (Amazon EC2 for example) so there are ways you can host a Map Suite-enabled application in the ‘cloud’ provided you can install a Production Web Server License.  
  
 I am assuming you are a place in the development cycle where you are ready to deploy your application and this is not the news you were hoping for. While this is unfortunate I would like to point out that we do not claim support for this type of deployment in any of our documentation or information pages, and we have a free forum and knowledgable sales staff that could have addressed the question of if this was a viable deployment avenue early on in the development cycle. If we can be of any additional assistance please let us know.

Not to beat a dead horse, but AppHarbor has asked me if it is possible to include the licensing dll in our code and reference it.  I’m afraid I already know the answer, but I want to make sure that what AppHarbor suggest is not possible.  Below message from AppHarbor, 
  
  
 Hi, 
  
 I’m sorry, but we’re not able to run installations of specific software such as this on AppHarbor application servers. As Michael points out above any dlls that are not platform or framework specific should be included in the repository. 
  
 I’m wondering if you can maybe archive this is a different way - it’s probably possible to simply include the dll and make sure to reference it from your project (rather than any GAC’ed assemblies or similar). This would most likely solve the dependency problem, although I’m not sure if there’s some licensing problems that could be problematic (for instance if the license key is in the registry). 
  
 Best, 
 Rune 


Hi Al,  
  
 As mentioned previously there is not a way to install the necessary license key using our standard mechanism on App Harbor and there is not a way to provide you a ‘licensing dll’ as this would require a complete rewrite of our current server licensing model.