StrataFrame Forum

This server is not licensed to run on the requested hostname.

http://forum.strataframe.net/Topic18645.aspx

By Keith Chisarik - 8/20/2008

I am trying to get ES up and runing under the developer SDK license, we have two projects that I think are a great fit for ES. The error I get (via email from the ES server) when trying to connect is below. The hostname listed in the account section matches the name in my EnterpriseDataSourceItem so I am not sure what is next. Can you see if there is a licensing problem? I downloaded the license file twice and installed it. Status.ASPX works and shows the client connected. One odd thing is the status page shows the server hostname as "Unknown", maybe that is the problem but I sure dont know how to fix. Thoughts appreciated.

Enterprise Server Error

Message:

This server is not licensed to run on the requested hostname.

Client IP:

71.230.148.15

Details:

Exception
This server is not licensed to run on the requested hostname.

Source : MicroFour StrataFrame Enterprise Server

Stack Trace:
at MicroFour.StrataFrame.Enterprise.Server.RemoteDataSource.
ᜀ(String A_0)
at MicroFour.StrataFrame.Enterprise.Server.RemoteDataSource.ProcessRequest(HttpContext context)

If System.IO.File.Exists("C:\EnableES.txt") Then

'-- Create the ES data source

Dim ds As New EnterpriseDataSourceItem("", _

"es.sigmaxxxx.com", 80, "ILA", _

New SqlDataSourceItem(""))

'-- Configure the compression and encryption (optional)

ds.IsCompressed = True

ds.IsEncrypted = True

ds.EncryptionKey = New Byte() {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4}

ds.EncryptionVector = New Byte() {1, 2, 3, 4, 5, 6, 7, 8}

'simple error display for testing

Try

'-- Add the EnterpriseDataSourceItem

DataLayer.DataSources.Add(ds)

Catch ex As Exception

MsgBox(ex.ToString)

End Try

Else

By Dustin Taylor - 8/21/2008

It is showing the activated IP as 127.0.0.1 with a hostname of es.sigmaxxx.com (it's not really sigmaxxx, but I'm assuming you obfuscated that for a reason Wink). My guess is that you gave it a MAC that isn't connected to the internet, which is why it pulled 127.0.0.1 and why you can't get to it from outside clients.

I wiped out your license, so you can go ahead and re-activate. Be sure to give the mac address of the network adapter that your public IP is attatched to and you should be good Smile.

By Keith Chisarik - 8/21/2008

Same result after reactivating, made sure it was the external NIC (pretty sure it was the first time too). Could it possibly be the fact that the NIC has 16 IP's assigned to it, that is all I can think of that is out of the norm? This is our production application server that runs quite a few things spread out across the 16 IP addresses.

I need to get this eval up and running so any help will be greatly appreciated.

By Dustin Taylor - 8/22/2008

Hm, well so much for that theory. In your code sample, you were just obfuscating your domain when you put it as "es.sigmaxxxx.com", correct? My new biggest suspect is that "Unknown" for your hostname on the status page. Whatever is preventing that from resolving is likely our culprit.
By Keith Chisarik - 8/22/2008

OK, any ideas on that path?

And yes I just obfustcated it so it wont be harvested by a spammer, I notice these forums index quite well and that domain also runs several mail servers, I dont want the domain name out there as much as I can control it. Nothing at all to do with SF there but be assured the domain in the code matches the hostname that I activated and I can get to it via the web ie (http://es.sigmaxxx.com/status.aspx, from my IP only since I set that in the config file).

Hope that helps you give me some things to try to get this working. So the status page should show the hostname, not "unknown"?

By Dustin Taylor - 8/22/2008

Yep, it should show you the hostname. I just looked at the code and it is just pulling the hostname directly from the license file, so the problem looks to be with accessing that file.  Either it can't find it, can't access it, or doesn't recognize it.

A couple thoughts: You'll need the most recent license base for it to interpret that license file correctly, and you'll need the most recent ESSiteContents for everything to be plumbed correctly. Have you gotten the latest beta build from here and the site contents (they  were updated in June) from here?

Past that, my guess would be that it just flat out can't find or access the license file, so I'd check your file permissions on that file to ensure that the IIS user has access to it.

By Keith Chisarik - 8/22/2008

NO I installed ES from the account area? That code wont work?
By Keith Chisarik - 8/22/2008

anyhow.... I copied the site contents from that post and it did update files from what was installed from the "My Account" area, I restarted the site and its app pool. Hostname is still "unknown" with a license expiration date of 1/1/1800.

The license file has been given full permissions for the Internet Guest account.

I did now update the SF DLL's in the GAC as this is a production server and I dont want to do that right now unless you are 100% sure that is going to be required to get this going. It looked to me that all the assemblies ES needs are in its BIN folder.

Next?

By Keith Chisarik - 8/22/2008

I was going to reload the license file but I see in my license summary area of the website the ES Server shows an IP of 127.0.0.1, dont think that will work. I dont run anything on localhost on the server.

I can give you the IP for the correct hostname, does that help?

By Trent L. Taylor - 8/22/2008

OK...let's talk about a few things here so that we can make sure that we are on the same page.  We had to change the License Base assembly in 1.6.6 so use a different public token.  So this asssembly will not work with newer ES files, etc.  Which makes sense as you should really have all of the same StrataFrame assemblies on the same machine.

But here is the deal, there is one of two things going on here since the host name cannot be seen. There is a line of code that is used from the MicroFour License Base.dll assembly that attempts to pull the host name out of the licnese file (since the host name is stored within the license file).  if it cannot be found within the licnese file, then Unknown will be returned.  Since you are not getting an exception, I would think that all of you SF assemblies are on the same version, thus, it just cannot find the license file.  Here are some other fields that will appear "empty" or with default values if the license file cannot be found:

Stop Date: 1/1/1800
Host Name: unknown
Registered Company: (empty string)
Registered Name: (empty string)
Serial Number: (empty string)

There are some others, but this will be  a good litmus.  So let's basically go back to the beginning and just get your machine activated Wink

Note: The license file "MicroFour License.dll" should be placed in the Bin folder of the ES site.

By Keith Chisarik - 8/22/2008

The license DLL is in the bin folder.

Stop Date: 1/1/1800

Host Name: unknown

Registered Company: Sdsi

Registered Name: Keith Chisarik

Serial Number: 77172-EF70B-942D7-B18C6-155EE

By Trent L. Taylor - 8/22/2008

Ended up being a license file in the GAC which is read over the local license file....once removed from teh GAC...worked like a champ Smile
By Keith Chisarik - 8/22/2008

The fix, make sure the only version of the license file Microfour License.dll is in the BIN folder of the ES website. I had another one that was incorrect.

I am all connected with my app, thanks.

By Keith Chisarik - 8/28/2008

I never tried to update until today. Any idea what this might be? I get this when trying to update any field.

The app runs fine without using ES.

BusinessLayerException

  An error occurred while saving an the data to the server.

DataLayerSavingException

  Bad Data.

 CryptographicException

  Bad Data.

 Source     : MicroFour StrataFrame Business

 Stack Trace:

   at System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr)

   at System.Security.Cryptography.Utils._DecryptData(SafeKeyHandle hKey, Byte[] data, Int32 ib, Int32 cb, Byte[]& outputBuffer, Int32 outputOffset, PaddingMode PaddingMode, Boolean fDone)

   at System.Security.Cryptography.CryptoAPITransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount)

Method not found: 'System.Data.IDataReader MicroFour.StrataFrame.Data.DbDataSourceItem.ExecuteReader(System.Data.Common.DbCommand, Boolean, System.String)'.

71.230.148.15

MissingMethodException
Method not found: 'System.Data.IDataReader MicroFour.StrataFrame.Data.DbDataSourceItem.ExecuteReader(System.Data.Common.DbCommand, Boolean, System.String)'.

Source : MicroFour StrataFrame Enterprise

Stack Trace:
at MicroFour.StrataFrame.Data.Enterprise.RequestProcessor.ExecuteReader(ExecuteReaderParams params, Guid clientId, Boolean isServerRequest, Byte[] rawRequest)
at MicroFour.StrataFrame.Enterprise.Server.RemoteDataSource.ProcessRequest(HttpContext context)

By Keith Chisarik - 8/28/2008

I found this post which looks like a winner maybe? I do have both 1.5.0 and 1.6.0 versions of each SF assembly in my GAC on the production server ES is running on since some apps go back a ways and I really dont want to have to go back and update and redeploy. Some of them (websites) havent been touched in 2 years but run fine every day.

In the GAC I have a 1.5 and 1.6 for  AddIns, Base, Business, DBEngine, Extensibiity, and UI. The Enterprise assemblies are only in the BIN directory.  Hope this helps you point me in the right direction.

Data displays fine, reports run, just cant update anything.

By Keith Chisarik - 8/31/2008

bump
By Dustin Taylor - 9/2/2008

There is a spot in the datasources.config file to put the expected version for the assembly that contains the data source item you are trying to load. Make sure that is set to 1.6.0.0, and it should pull the correct assembly when there are multiple versions available for it to choose from.

If that doesn't work, you'll have to either update everything to the latest version, or pull everything out of the GAC and place the appropriate assemblies in the folders for each website so that each website only pulls its own assemblies.  That way you can have several "1.6.0.0" version assemblies on the same machine.

By Keith Chisarik - 9/4/2008

I got this fixed by updating all my projects on the production server to use 1.6.6 and updated all assemblies in the GAC.

Follow up: How do I remove the old 1.5.0 assemblies from the GAC? Right cCick-Uninstall yields dependency errors and I am hesitant to try some of the suggestions on MSDN because they dont seem to specify how to uninstall an assembly of a specific version only. I have two of each SF assembly; a 1.5 which needs to go, and a 1.6 which would be very bad if it went Smile

By Dustin Taylor - 9/5/2008

You should be able to use GACUTIL.exe to get rid of it. Sometimes they get a bit stuck in there, in such cases the GACUTIL works pretty well to pry them out whether they are willing or not Wink. The other option is to turn off your fusion viewer and go digging to see if you can just delete them yourself.

A decent write-up on GACUTIL: http://msdn.microsoft.com/en-us/library/ex0ss12c(VS.80).aspx

To turn off the fusion viewer, add a "DisableCacheViewer" DWORD registry key with a value of 1 to HKLM\Software\Microsoft\Fusion.