Installing Oracle SQL Developer On Windows 8. Minimum Requirements Not Met

April 8, 2013

G’Day Tadpolers,

I went to install Oracle SQL Developer On Windows 8 and got the error message Minimum Requirements Not Met

The install log contains the following text:

INFO: Checking whether the IP address of the localhost could be determined…
SEVERE: CVU do not support target environment

The Good News is that you can continue to install Oracle SQL Developer on Windows 8. It will install run. Just click ‘YES’ to continue when the warning dialog comes up during installation.

The Caveat is that Oracle SQL Developer is not formally certified by Oracle to run on Windows 8. That’s why you get the ‘Minimum Requirements Not Met’ message.

But go ahead anyway: Life’s too short to rebuild your machine due to spurious formal certification warnings and drink bad coffee.

How to fix compatibility mode error that can appear when installing Windows Phone Developer Tools or Visual Studio 2010

October 16, 2012

Such a crazy error this one.

Thank the Internets that we have Aaron Stebner to help us. Aaron just happens to be a senior Microsoft developer who worked on multiple versions of the .NET Framework amongst many other things, so I think he can be trusted or, as we like to say here at BTWT, bitten.

So the issue you are probably facing where you get that weird ‘compatibility mode’ error dialog is, to quote Aaron:

you exited setup after it told you that VS 2008 was open, a dialog appeared that said that the setup didn’t appear to complete successfully. If you clicked Yes on that dialog, it will cause future attempts to run that installer to launch in compatibility mode, which will then trigger the error in this blog post. Compatibility mode is stored in the registry based on the full path to the setup program, so it will appear every time you launch setup from the same location as it was originally launched from. Renaming or moving the file will cause the path to be different so it won’t trigger the compatibility mode dialog.

So just move your setup.exe or vm_web2.exe to a different directory and double click.
It will run.
It will install.
You will keep your job.

A couple of other fixes for the problem are described on Aaron’s page.
Go there.
Be amazed.

SSRS: User Does Not Have Permission. Cannot see any Reports Or Folders.

September 4, 2012

We set up our SSRS ReportManager, wrote reports then handed off to the test team person.

I added the user as a System User under Site Settings and then gave them Browser permissions on the Folder
containing the reports. I instructed the user to access the ReportManager at http://machine/reports and confidently sat back to
await their screams of joy at the gorgeous reports I had written.

Like a bucket of ice water in the face at 2am I was assaulted by this message in an email:

User ‘Domain\person’ does not have required permissions. Verify that sufficient permissions have been granted and Windows User Account Control (UAC) restrictions have been addressed.

I fiddled with Trusted Sites, started her IE in Administrator mode and read all number of intriguing articles about rsconfig and Windows Impersonation but none of it seemed quite real and then a beautiful someone alerted me to ‘Folder Settings’, or maybe I figured it out myself. I can’t remember.

Yes, giving my user ‘Browser’ privs in Folder Settings from ReportServer Home Page as well as giving them ‘Browser’ on the folder containing their reports was what it took to allow my testing team person to test. Screams of joy now indeed fill the office.

SSRS Cannot Access Report Manager Home Page On Default URL

August 6, 2012

Semi-loyal fans: just a quick nibble today…

My team lead installed SQL Server Reporting Services on my DEV machine and asked me to ‘get it working’. Both of us are noobs at SSRS installation.

I found that SSRS was indeed installed by opening the Reporting Services Configuration Manager but I could not access the Report Manager home page which was at http://machinename/ReportServer_SQL2008R2.

After a lifesource-draining 67 mins. of googling, the answer was of course incredibly simple.

The URLs http://machinename and http://localhost need to be added as Trusted Sites in Internet Explorer. To do this, run IE in Adminstrator Mode and follow instructions kindly supplied by Microsoft Support Knolwedge Base here. See instructions and point 7 “Configure Report Server for Local Administration”.

For this glorious solution I thank of course Microsoft Support and the linkee Anitha6320269, currently scoring 0 points on the social msdn forums with no recorded recent achievements. Anitha, may your score increase to levels beyond your nick!

UPDATE: Two Hours Later

Weird. A couple of hours later I could not access the Report Server Page. I was only getting a Directory Listing of the Report Server site, not the actual landing page. So I had to turn off Windows user Account Control. I did that by following this link.

Deploying Reports To The SSRS Report Server

Cool. I can see an SSRS page. Now, how to stuff my Reports in there. What you need to do is the following:

- Create a SSRS Report in a Report Server Project using Visual Studio 2008 (VS 2010 doesn’t have Report Server Projects yet)
- In Properties for that Project specify the TargetReportFolder and TargetServerURL

The Target Server URL is not the same as your Report Server URL. The reason for this is that the TargetServerURL attribute in Properties refers to

WCF RESTful Service URL Cannot be Found HTTP Error 500

June 13, 2012

I am taking my first noob steps into creating a RESTful WCF Service which means you can benefit from all my obvious blunders and mistakes.
Here’s the first one:

Slavishly following the excellent article ‘Create RESTful WCF Service API : Step By Step Guide’ I was shocked to find that I got a HTTP 500 error when accessing the Service URL. The problem was merely that I had omitted the webHttp element from the endpointBehaviour configuration.

In my web.config for the service I had:

endpointBehaviors
behavior name="web"

/behavior
/endpointBehaviors

But what I needed was:

endpointBehaviors
behavior name="web"
webHttp/
/behavior
/endpointBehaviors

So now you know.
Keep on noobing!

Google Maps Does Not Print.

June 4, 2012

Tadpolers,

If your Google Maps does not print then perhaps your Print CSS is to blame. Mine, inherited from our esteemed clients, had this thermonuclear option embedded within it:

* {
position: static !important;
overflow: visible;
}

What you see there is the ‘asterisk’ selector applied at the top-level of the DOM which means it applies to every element on every page. Great, except that Google Maps rely on a combination of relative and absolute positioning, not static positioning and, most evil, the css had specified !important on the asterisk style, giving it a very high precedence.

To knock out the asterisk selector for Google Maps without disturbing the rest of my client’s Print CSS I had to declare a new selector for elements within Google Maps. This was:

#map_canvas * {
position: relative !important;
}

#map_canvas * > div {
position: absolute !important;
}

This seems to go OK.

Enterprise Library ExceptionManager.Current Throws ‘Exception Thrown By Target Of Invocation’ After Renaming Namespace

December 14, 2011

The problem, dear Tadpolers, is that the ExceptionManager cannot load because the type of the Exception no longer exists because the namespace that it originally lived in has just been renamed. Therefore the ExceptionManager cannot load its handlers.

In my case I had a ReplaceHandler:
add name="Replace Handler" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.ReplaceHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" exceptionMessage="Data Access Error. Please notify Service Desk." exceptionMessageResourceType="" replaceExceptionType="Common.RepositoryException, Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"

But then I renamed The Namespace ‘Common’ to Norbert.Common, so the next time the ExceptionManager tried to load its ReplaceHandler it could not find the namespace Common or the type Common.RepositoryException, so its threw a TargetInvocationException.
I had to go through my app.config and update all instances of Common.RepositoryException to Norbert.RepositoryException like so:

add name="Replace Handler" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.ReplaceHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" exceptionMessage="Data Access Error. Please notify Service Desk." exceptionMessageResourceType="" replaceExceptionType="Norbert.Common.RepositoryException, Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"

Sweet As..

Adding existing entity to Association: An object with the same key already exists in the ObjectStateManager. The ObjectStateManager cannot track multiple objects with the same key.

November 24, 2011

I got this error when adding a new entry to a Property in my Entity which is a Navigation property.

To get around this you must Detach the entity already in your Context which has the same key as the entity you are trying to add to your Context. The Gotcha is that if you insert an entity into a List which is a Navigation Property then Entity Framework marks that entity as ‘Added’ even though it is not actually New.

As my now dearly beloved Stack Overflow contact, Shimmy, explained

if you set a navigation property to a tracked entity the new entity is automatically added:
Dim s = context.States.FirstOrDefault() Dim a As New Address a.State = s Dim state = a.EntityState ‘= Added

In my case, adding a Zeppelin to a Hanger which contains a list of Zeppelins:

SelectedHanger.Zeppelins.Add(zep); // Throws ‘object with same key…’ exception

The exception is thrown because my ctx.Zeppelins already contained a Zeppelin with Id equal to zep.Id. Same object key, therefore KABOOM. That zep BTW, was not an actual new Zeppelin but a Zeppelin selected from a list of Zeppelins in a DropDown. Even though Selectedhanger.Zeppelins did not contain a Zeppelin with Id = zep.Id, the fact that I had added zep to SelectedHanger.Zeppelin caused EF to initialise the EntityState of zep to ‘Added’ in the Context. Capiche ?

So to successfully add zep to Hanger.Zeppelins:

Zeppelin ctxZep = ctx.Zeppelins.Where(z => z.Id == zep.Id).Single();
ctx.Zeppelins.Detach(ctxZep);
ctx.Zeppelins.Attach(zep);

Noice.

Enity Framework: Unable To Delete Entity Because Primary End Of Foreign Key Constraint Has Been Deleted

November 23, 2011

I got this error even though the Foreign Key constraint had been deleted from the database and I had re-executed all my EF Template files, had refreshed my Model from the database and had deleted the relevant Navigation propertry from my Model.

Thing is , I had forgotten to physically delete the Association in the Model Designer .edmx file. When I did that and then re-ran my Model Template file all was well.

So I reckon I had only refreshed the secondary (referencing) table in the FK side. Next time I will refresh the primary (referenced) table as well.

That’s all. Get back to what you were doing. The door is the wooden thing in the wall behind you.

SelectMany Example: Flatten Parent Child Association Into A Single List

October 28, 2011

I’m starting to get the hang of LINQ SelectMany now.

Here’s a great article which explains SelectMany better than any other I’ve read. For this James Etheredge is awarded the BTWT Golden Tadpole With Anachronistic Zeppelin for services to Brain Improvement.

So the key is to recognise that SelectMany needs a List to work on. Well, not a List exactly. SelectMany actually works on an IEnumerable. But to get started with SelectMany we can take the conceptual shortcut of thinking of SelectMany as working on instances of List.

So if I have a list of Tadpoles each of which contains a list of Zeppelins and I want to flatten that list I just say:

List (Of TadpoleZeppelins) tadZeps = tadpoles.SelectMany(tad =>
CreateTadpoleZeppelin(
tad.Zeppelins.ToList())).ToList();

CreateTadpoleZeppelin creates a list of TadpoleZeppelins out of a List of Zeppelins, like so:

CreateTadpoleZeppelin(List(Of Zeppelin) zeps)
{
List(Of TadpoleZeppelin) tadZeps = new List (Of TadpoleZeppelen)
zeps.ForEach(zep =>
{
TadpoleZeppelin tadZep = new TadpoleZeppelin();
tadZep.NumFins = zep.Tadpole.NumFins;
tadZep.HeliumCapacity = zep.HeliumCapacity;

tadZeps.Add(tadZep);
});

return tadZeps;
}

I think that’s pretty self-explanatory.

Footnote
If the example seems a bit weird just substitute ‘Customer’ for ‘Tadpole’ and ‘Order’ for ‘Zeppelin’


Follow

Get every new post delivered to your Inbox.