my blog RSS 2.0
 Wednesday, April 06, 2005

The other day I was looking again at where the excellent FlexWiki project has been progressing and I decided I'd like to download the sourcecode, only to realise I'd need a CVS client to access the source-control database. I promptly downloaded TortoiseCVS and was stunned to discover how easy it was to use. It got me thinking that I might as well start running a CVS locally on my machine for source-control.

I then naturally revisited the idea of using Subversion instead as I had read many times how it was "a compelling replacement for CVS" . It so happens that I decided to just start off with TortoiseSVN (a client app for Subversion) with the aim of seeing how that works and it turns out that it has an amazingly handy feature whereby you can use TortoiseSVN to setup and run a source-control repository locally. TortoiseSVN then treats that location on your hard drive exactly as if it were a Subversion server proper.

With this proliferation of Tortoises in my life I decided to hark back to my days as a Zoology student and have a look at what other  Chelonia I might expect to find here in Europe. I like the Golden Greek Tortoise the best...

Golden Greek Tortoise

see http://www.chelonia.org/European_Gallery.htm for more!

 

Wednesday, April 06, 2005 4:49:47 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -

I passed my first MCP exam today with a satisfyingly high score (hint: > 900)!

I'm delighted to be able to say with confidence that I am now a certified expert in Developing and Implementing Web Applications with Visual C#.Net and Visual Studio.NET (070-315)

[UPDATE] after kind congrats from Thomas Williams I thought I'd say something about how I managed this feat ;-)

For anyone else wanting to do the same, be aware that the MS Press books DON'T cover everything you need to know in the exams. While they're a good foundation they miss out material or don't go into enough detail. I have read very good reviews of the MCSD/MCAD Training Guide by Amit Kalani if you want to be sure of not missing anything.

Of course, there's no substitute for experience of actually using the technology (which is a good thing of course - dump the braindumps).

 

 

 

Wednesday, April 06, 2005 3:47:48 PM (GMT Standard Time, UTC+00:00)  #    Comments [1] -

 Friday, February 25, 2005
This is just to test that my new dasBlog blog is cross-posting OK to my SharePoint blog and to my dotnetjunkies blog
Friday, February 25, 2005 12:10:59 PM (GMT Standard Time, UTC+00:00)  #    Comments [2] -
blogging
 Wednesday, February 23, 2005

Welcome to my new blog.

Don't expect much content just now as I want to work out how to migrate articles from my dotnetjunkies blog first, and to consider the implications of moving over from a blog that has a referral from MSDN!

[UPDATE]

The entries from my SharePoint themed blog carried over beautifully thanks to DotText2DasBlog. Kudos to Aaron Junod for the source code for that! I think there must be something very wrong going on with the install of .Text over at dotnetjunkies - I just keep getting a 'NullReferenceException' when trying to access BlogContent.asmx or SimpleBlogService.asmx.

Hopefully sometime soon they'll install the very exciting new Community Server 1.0 as announced recently by Rob Howard.

Wednesday, February 23, 2005 4:10:34 PM (GMT Standard Time, UTC+00:00)  #    Comments [1] -
blogging
 Thursday, December 16, 2004
I discovered today that Indexing List Items so that they appear in Search Results doesnt happen by default and I thought "surely this can't be right". Luckily (thanks to Daniel McPherson) if you follow this link you'll see that you can still enable this on a list-by list basis
Thursday, December 16, 2004 10:10:00 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
SharePoint
 Thursday, September 16, 2004

Christa Carpentiere has done yet another implementation of reporting off an ADO.Net Dataset but this time it's in an MSDN article, and it's in both VB.Net and C#.

This one add something interesting though, as it also shows how you might call an external assembly to generate the DataSet.

 

 

Thursday, September 16, 2004 3:40:00 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Reporting Services
 Wednesday, August 18, 2004

Toby Riley emailed me to alert me to his extension that can take a select query and execute it against any DB using a connection string as a parameter and pass the data back to the designer:

http://workspaces.gotdotnet.com/appworld

Another blogger of note has also come online lead developer for the Reporting Services product by the name of 'Tudor'.

Wednesday, August 18, 2004 3:04:00 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Reporting Services
 Wednesday, June 16, 2004

Searching google groups for "failed to create portal successfully" group:microsoft.public.sharepoint.portalserver.* returns 120 results

"portal creation failed" group:microsoft.public.sharepoint.portalserver.* returns 86 results.

I have read most of them and few seem to offer any resolution, there are ALOT of very unhappy people out there.

Unlike most people I am only reaching a very early stage in the portal creation process, most seem to get past the 'extending virtual server' step, but I don't. The app pool identity has the required privileges on the remote SQL server (database creators role) and local admin rights on the IIS server.


22:41:32 Checking virtual server state.
22:41:32 Virtual server needs extend.
22:41:32 Extending virtual server 'http://myserver:8100/' using existing AppPool 'MSSharePointPortalAppPool'...
22:41:33 Failed to create portal successfully MY Portal


UPDATE: Travis advised that I should have removed WSS before starting the SPS installation but this document clearly states that during SPS installation "your virtual servers for WSS are automatically disconnected" it does not at any point indicate that you should first uninstall WSS completely. This is a valid point but not the source of the problems in this case.

UPDATE 2: Having completely removed SPS and WSS and restored our production sites from backups I have had more time now to inspect the server event logs.

It seems that at the stage when I was asked to configure the component assignments web/search/index/ (SPS Central Administration | Configure Server Topology), there are 'Information' messages in the event log (surely these should be warnings or errors?!) relating to errors with various SharePoint-related services (search service, alert service etc)

e.g. "..description for Event ID ( 0 ) in Source ( SharePoint Portal Alert Service ) cannot be found."

So there is no way to find out what the errors are, but in any case it seems a whole slew of services failed to get installed properly. What annoys me no end is that the 'Configure Server Topology' page gives you no indication that anything has gone wrong.

The reason I assume that these services failed to get installed is that immediately preceding these cryptic errors there are more specific errors as follows: 

"The configuration information of the performance library "C:\WINDOWS\system32\infoctrs.dll" for the "InetInfo" service does not match the trusted performance library information stored in the registry" and there was a similar one relating to W3SVC

then one of these:

"WMI ADAP was unable to process the SharePoint Portal Alerts Notification Service performance library since one of the data blobs reported to have classes but had zero size"

and one of these:

"WMI ADAP was unable to retrieve data from the PerfLib subkey: SYSTEM\CurrentControlSet\Services\SPSARPI\Performance\Library, error code: 0x80041009"

the same error was also logged for SPSAUTOCAT, SPSGATHERER, SPSGTHRSVC, SPSINDEX, SPSMATRIXPI, SPSSEARCH, SSO, subpi.

Then there was this (reported under the identity of the app pool service account being used for SPS/WSS):

"Windows cannot unload your classes registry file - it is still in use by other applications or services. The file will be unloaded when it is no longer in use."

and

"Windows saved user MyDomain\svcSharePoint registry while an application or service was still using the registry during log off. The memory used by the user's registry has not been freed. The registry will be unloaded when it is no longer in use. This is often caused by services running as a user account, try configuring the services to run in either the LocalService or NetworkService account."

and then

"The worker process failed to initialize the http.sys communication or the w3svc communication layer and therefore could not be started. The data field contains the error number."

If anyone know why all this could have occurred I'd be interested to hear. In the meantime I'm probably going to call TechNet direct.

UPDATE 3: We had numerous issues with DNS and Kerberos authentication on our domain about which we raised a PSS call to Microsoft who dealt with the issue very efficiently. After also reinstalling W2K3 from scratch I then didnt have any problems installing SPS, thanks to everyone who replied with comments.

Wednesday, June 16, 2004 4:14:00 AM (GMT Standard Time, UTC+00:00)  #    Comments [7] -
SharePoint
 Friday, June 11, 2004

In my previous post I stated that I had succeeded in converting a Reporting Services Data Processing Extension for reporting on ad-hoc data from a serialized ADO.Net DataSet into VB.Net. I have since extended this with an extra parameter (IDataParameterCollection) to allow the report designer to define at design-time (or indeed at run-time) which DataTable within the DataSet should be used as the source table. The implementation of DataProcessing.IDataReader also now iterates over a DataView of the table rather than the DataTable itself thus allowing me to pass a third parameter (actually passed via the Generic Query Designer as the command text (IDbCommand.CommandText)) which I then use as the RowFilter for the DataView.

This all works great. I can supply the parameters which I have told the extension to request from the designer (via the implementation of IDbCommandAnalysis.GetParameters method), and the query designer screen returns the data into the results screen, but if I attempt to navigate to the report layout tab, or I click on the 'Refresh Fields' button within the Generic Query Designer, I get an exception.

I deliberately decided to Debug.Assert that the @DataSource parameter should not be empty, but it should not be empty anyway as I have already supplied it via the designer. Following my debug trace information I can see that ExecuteReader in being called, but that the parameters are being passed as empty strings. If I elect to ignore the error then I can see via the trace that ExecuteReader gets called a second time, this time passing the parameters as I have entered them, and all is well.

The solution of course is not to require there to be non-empty parameters, but surely this is a bug?

UPDATE: after lots more detective work I have discovered that presumably the Report Designer graciously handles any ArgumentExceptions, and just carries on and attempts the ExecuteReader a second time.

How did I discover this? I turned off my assertions and just let the code proceed, the code gets as far as trying to load the DataSet:

Try
  
dataset.ReadXml(dataSource)
Catch ex As
System.Exception
   Trace.WriteLine(
String
.Format("Error Reading XML into dataset: {0}:{1}", ex.Message, ex.GetType))
   Throw
ex
End Try

but inevitably it fails because the dataSource parameter is a blank string, so I catch an ArgumentException and write a message to the trace as follows:

Error Reading XML into dataset: The path is not of a legal form.:System.ArgumentException

The Report Designer then carries on and repeats the call to ExecuteReader, this time passing the correct parameters and everything goes smoothly.

So, still a bug in my opinion (unless anyone can enlighten me otherwise) - but it works! ;-)

UPDATE 2:

Robert Bruckner has now kindly enlightened me as follows (see also this thread):

If you actually execute the query when ExecuteReader(SchemaOnly) is called
then the implementation is incorrect. For SchemaOnly execution, no parameter
values are passed in because no query should be executed - just the columns
should be returned.

When Refreshing Fields, the report designer first tries to determine the
fields based on ExecuteReader(SchemaOnly) because this should not affect any
database state (and it is cheaper). If SchemaOnly fails, then report
designer tries to actually execute the query and determine the fields based
on the returned dataset. In order to execute the query it has to pass in
parameter values.

Friday, June 11, 2004 4:37:00 PM (GMT Standard Time, UTC+00:00)  #    Comments [3] -
Reporting Services
Archive
<April 2005>
SunMonTueWedThuFriSat
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2008
Rohan Cragg
Sign In
Statistics
Total Posts: 24
This Year: 0
This Month: 0
This Week: 0
Comments: 41
Themes
Pick a theme:
All Content © 2008, Rohan Cragg
DasBlog theme 'Business' created by Christoph De Baene (delarou)