Archive for January, 2009

Windows Installer Service Cannot Be Accessed

January 20, 2009

There’s a number of Web Pages about this issue, including official Microsoft Support pages but EventID.NET has the best one.

This is because EventID.NET breaks down the Event ID of the error into specific OS-level error codes, each of which has a different fix. You can find the underlying OS error from Event Viewer in your Computer Management Console under Control Panel.

Finding The Specific OS-Error
Microsoft Installer “Windows Installer Service cannot be accessed throws Event ID 1015. Hunt for this in your Application Event Viewer.

eventid105

Double click the Event 1015 entry to see the specific OS error:

eventproperties

Take the Event ID to EventID.NET

Go to EventID.NET, type in the EventID you discovered, find the section for MSInstaller, click that, and read through the entries until you find one that refers to your specific OS error.

Either that or just Google on the error message/code you found in the Event Properties and pick the EventID.NET link.

Looks like I was a victim of Failed to connect to server. Error: 0x800706BA. Thanks to the EventID.NET page linked above, and Dmitry Zavgorodniy, who described the fix, I found that this was because:

Dmitriy Zavgorodniy (Last update 4/25/2005):
– Error code: 0x800706BA (Error code 0x800706BA) – This problem occurred when I tried to Add/Remove options for Office 2003 SP1. Check the status of the service “DCOM Server Process Launcher”, if it’s disabled, change the mode to automatic, and start it

I followed Dmitriy’s advice and Windows Installer Service perked up better than Collagen lip-implants.

I also checked that the Windows Installer Service mode was ‘Automatic’. It was ‘Manual’ with a Status of Stopped which would have left it decidedly inert.

Am I MCSA yet ?

The Long Way

Before encountering the shining brilliance of EventID.NET I Googled the Microsoft Support pages and tried method 1, method 2, regedit this, reboot that, rubbing the eyelids of two-headed Cane Toads across the DVD Drive, all to no avail, except for letters of protest from Friends Of Deformed Noxious Vermin Inc..

Get the specific OS error out of the Event Viewer, that’s the trick.

Finally

If your DVD Drive should stench of decayed Cane Toad giblets, try this.
More info on DCOM Process Launcher Service here and here and of course here

Advertisements

Master Page Content Not Visible Visual Studio 2008

January 16, 2009

.NET For The Iodine-Deficient

I have noticed that my posts on Ultra-Simple errors and topics (e.g. JQuery Toggle Div and Regex For Alphanumeric Plus Punctuation) get quite a few hits so I assume that many of you out there, like me, are Iodine-Deficient and do not read documentation.

So let’s wipe the drool from our imperfectly-shaven chins and proceed with solving possibly the simplest Master Page File bug imaginable.

Creating Master Page and Content Page in VS2008

Create the Master Page by right-clicking the Project and going Add ->New Item -> Master Page
Create the Content Page by Add->NewItem->Web Content Form and select the Master Page File you just created when the dialog appears.
N.B. Do NOT use a Web Form, use a Web Content Form.

Web Content Forms are aspx pages which contain only Content Controls. This is what you need with Master Pages. If you try to use a normal Web Form with a Master Page you will probably end up with the error ‘Content Control must be a top-level control’ (unless you hack the Web Page markup).

Create Some Master Page Content

The Master Page you just created will contain two content areas, one in the head section of the page and one in the body. Type some text in the one in the body such as ‘I am Iodine-Deficient’.

vs2008masterfile<

Your Default Web Content page will look like this:

vs2008contentpage<

Now run your project.
Your Web Content page DOES NOT show the text you just typed into the Master Page.

Where Is My Content ?

The asp:ContentPlaceHolder control in the Master Page contains the default content for the asp:Content control in the Web Content pages with the matching ContentPlaceHolderId. The content within the asp:Content control on any Web Content page, is page-specific and takes precedence over what is in the asp:ContentPlaceHolder control on the Master Page.

As Scott Mitchell explains in more technical language:

Content pages include a Content control for each of the master page’s ContentPlaceHolder controls. When the content page is visited through a browser the ASP.NET engine creates the master page’s control hierarchy and injects the content page’s control hierarchy into the appropriate places. This combined control hierarchy is rendered and the resulting HTML is returned to the end user’s browser.

The empty content in the asp:Content ID=ContentPlaceHolder1 control on the Web Content page is injected into the place occupied by ContentPlaceHolder1 on the Master Page That’s why the text ‘I am Iodine-Deficient’ in the Master Page is not emitted when the Content Page is rendered.

Making The Master Page Content Visible

If you want the text “I am Iodine-Deficient’ to appear on every page in your app., put it outside the asp:ContentPlaceHolder controls.

Amend your Master Page to look like this:

iodineintherightplace

And your Web Content page to look like this:

slowlyrecovering

Now you can be loud and proud:

muchbetter

You can also make Master Page content get shown on selected Web Content Pages by deleting the matching Content control from the Web Content Page. That way, whatever’s in the Master Page ContentPlaceHolder will get rendered on the Web Content Form because there’s no page-level content to override it.

Further Information

Lugol’s Solution available from Microsoft’s Master Page tutorial on their Learn ASP.NET site.