<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-7253450534711998018</atom:id><lastBuildDate>Sat, 19 Nov 2011 15:45:16 +0000</lastBuildDate><category>SPGridView</category><category>Dynamics Ax</category><category>Visual Studio</category><category>document library</category><category>timer service</category><category>manifest.xml</category><category>workflow</category><category>master page</category><category>detection failed</category><category>debug mode</category><category>SPList</category><category>Search scopes</category><category>Custom Web Parts</category><category>switch</category><category>install hotfix</category><category>negative count</category><category>restore</category><category>Windows xp</category><category>deploy solution</category><category>download</category><category>release mode</category><category>field definition</category><category>variations</category><category>CAML query</category><category>master page error publishing namespace</category><category>register SharePoint site in Ax</category><category>Axapta</category><category>Windows SharePoint Services Timer</category><category>Debugging</category><category>automatically apply master page</category><category>MOSS</category><category>list name</category><category>protected memory</category><category>task form</category><category>sarah de wilde; www.sarahdewilde.be</category><category>Picture Library</category><category>invalid IP address</category><category>BestBet</category><category>Hotfix</category><category>multiple values</category><category>group by</category><category>reset values</category><category>company logo</category><category>RenderasHtml</category><category>SharePoint</category><category>stopping</category><category>Keyword</category><category>pskill</category><category>IIS</category><category>MCTS Web Applications</category><category>Custom properties</category><category>properties</category><category>Role Assignments</category><category>feature</category><category>install wsp</category><category>view</category><category>Cannot find the path</category><category>languages</category><category>SharePoint Designer</category><category>delete folder</category><category>default scope</category><category>Code view</category><category>pstools</category><category>No Symbols</category><category>Infrastructure Update</category><category>uploaded documents publish programmatically</category><category>solution package</category><category>error</category><category>InfoPath</category><category>filtering</category><title>Tom Meskens on MOSS and other complete randomness</title><description /><link>http://ph-tom.blogspot.com/</link><managingEditor>noreply@blogger.com (Tom)</managingEditor><generator>Blogger</generator><openSearch:totalResults>35</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ph-tom" /><feedburner:info uri="ph-tom" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-3888835335930273766</guid><pubDate>Mon, 25 Apr 2011 21:48:00 +0000</pubDate><atom:updated>2011-04-25T23:51:32.556+02:00</atom:updated><title>No SharePoint for me anymore</title><description>Maybe I should have mentioned this earlier, but it just slipped my mind: I stopped doing SharePoint since August '10. So if you've been wondering why there are no new posts (not that I posted that frequently), that's why.&lt;br /&gt;&lt;br /&gt;I'm doing something completely different now (sales support for the B2B branch of LG Belgium) and I love my new job, so there most probably won't be any IT related posts anymore any time soon.&lt;br /&gt;&lt;br /&gt;I'll keep this blog as some sort of "archive" for people facing the same problems I was facing when using SharePoint and who knows, maybe I'll get back here some day for something completely different.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-3888835335930273766?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/Xn5nWXxuHGY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/Xn5nWXxuHGY/no-sharepoint-for-me-anymore.html</link><author>noreply@blogger.com (Tom)</author><thr:total>1</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2011/04/no-sharepoint-for-me-anymore.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-6019914240963839756</guid><pubDate>Wed, 21 Apr 2010 08:13:00 +0000</pubDate><atom:updated>2010-04-21T10:21:04.319+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Code view</category><category domain="http://www.blogger.com/atom/ns#">SharePoint Designer</category><title>Microsoft Office SharePoint Designer has stopped working</title><description>I've been facing quite an annoying problem when trying to modify a SharePoint page throug SharePoint Designer. I could open SPD without a problem and I could easily navigate to the page I wanted to modify and when I opened it, it did render the code and the design, but it also gave me a dialog box to "Choose an encoding". Whatever endocing I selected, SPD immediately stopped working, every single time I tried it.&lt;br /&gt;&lt;br /&gt;Luckily, I've found a workaround for this: in stead of opening the page in "Design" or "Split" mode, open it in "Code" view first. Then, when everything has loaded, just switch to Design or Split and it will work (well, it did for me...). To do this, just open SPD without opening the page already and pick "View" --&gt; "Page" --&gt; "Code".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-6019914240963839756?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/9Xr9YdGkfWM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/9Xr9YdGkfWM/microsoft-office-sharepoint-designer.html</link><author>noreply@blogger.com (Tom)</author><thr:total>7</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2010/04/microsoft-office-sharepoint-designer.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-7255964369152981714</guid><pubDate>Wed, 24 Feb 2010 14:01:00 +0000</pubDate><atom:updated>2010-02-24T15:09:30.872+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SharePoint Designer</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">error</category><title>SharePoint Designer error: The server could not complete your request</title><description>When the designer (or anyone else) tried to modify an aspx page or master page of one of our public sites, he could open aspx pages, but when he tried to save those or when he tried to open a master page, he got the following error:&lt;br /&gt;&lt;br /&gt;"The server could not complete your request. Contact your Internet service provider or Web server administrator to make sure that the server has the FrontPage Server Extensions or SharePoint Services installed."&lt;br /&gt;&lt;br /&gt;Clicking on "Details" gave a blank error. A lot of googling suggested recycling the application pool (didn't work) or extending the web application (that didn't apply to our situation, since that was when you were using FBA in stead of Windows authentication and we were using Windows authentication). The last option made me take a look at the security settings though, and that's where I found a solution that worked for me. It turned out that "Client Integration" had been turned off.&lt;br /&gt;&lt;br /&gt;To enable this (and hopefully resolve your problem), go to your Central Administration and then navigate to Application Management --&gt; Authentication Providers --&gt; Default. On this page, you can enable client integration. For me, that did the trick...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-7255964369152981714?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/D0UvX9BMoUE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/D0UvX9BMoUE/sharepoint-designer-error-server-could.html</link><author>noreply@blogger.com (Tom)</author><thr:total>0</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2010/02/sharepoint-designer-error-server-could.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-3219585481332353087</guid><pubDate>Mon, 25 Jan 2010 10:27:00 +0000</pubDate><atom:updated>2010-01-25T11:38:01.830+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">IIS</category><category domain="http://www.blogger.com/atom/ns#">invalid IP address</category><title>"... is an invalid IP address" when editing a site binding in IIS</title><description>I was trying to change a binding in IIS 7 on a VPC to test something out and I wanted to make the url "http://intranet" point to my newly created web application on port 567.&lt;br /&gt;&lt;br /&gt;To do this, I went to the web site in IIS, right clicked on it, selected "Edit Bindings...", selected the only entry there, clicked "Edit..." and filled in "http://intranet" in the "Host name" box. When I clicked on "OK", I got the message "'*:567' is an invalid IP address.". Turns out you can't fill in "http://" there, which makes sense cause it's already mentioned in the "Type" field, but I still think it's not a clear error message you get...&lt;br /&gt;&lt;br /&gt;So long story short: just fill in the actual host name and not the "http" part.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-3219585481332353087?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/JXO0e92NEhU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/JXO0e92NEhU/is-invalid-ip-address-when-editing-site.html</link><author>noreply@blogger.com (Tom)</author><thr:total>1</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2010/01/is-invalid-ip-address-when-editing-site.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-9218259104253174379</guid><pubDate>Thu, 14 Jan 2010 10:48:00 +0000</pubDate><atom:updated>2010-01-14T11:53:10.129+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">error</category><category domain="http://www.blogger.com/atom/ns#">deploy solution</category><category domain="http://www.blogger.com/atom/ns#">MOSS</category><title>Error when deploying a solution</title><description>Today I was trying to install one of the "fantastic 40" templates and when I tried deploying the wsp file, the job started running and resulted in an "error" state. There was nothing in the Event Logs and nothing in the ULS logs either. After some reading on the MS forum, I saw a post where someone suggested (for a similar problem) that the Windows SharePoint Services Administration service had to be running. So I restarted this service on all servers and tried to deploy again... and it worked! I don't know if this will apply in all situations where you just get an error when deploying a solution (most likely not), but it's something you can give a try...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-9218259104253174379?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/RXz74qqT7XE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/RXz74qqT7XE/error-when-deploying-solution.html</link><author>noreply@blogger.com (Tom)</author><thr:total>0</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2010/01/error-when-deploying-solution.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-488156820399217720</guid><pubDate>Tue, 05 Jan 2010 10:00:00 +0000</pubDate><atom:updated>2010-01-05T11:03:08.846+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sarah de wilde; www.sarahdewilde.be</category><title>Something completely different this time...</title><description>I just want to do a little promotion this time. I've got a friend who's a photographer and together we've created a website to showcase some of her work. So you should all go to &lt;a href="http://www.sarahdewilde.be"&gt;www.sarahdewilde.be&lt;/a&gt; and give her pictures a look!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-488156820399217720?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/pT7Aa77VnNs" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/pT7Aa77VnNs/something-completely-different-this.html</link><author>noreply@blogger.com (Tom)</author><thr:total>0</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2010/01/something-completely-different-this.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-8000315335259109828</guid><pubDate>Wed, 09 Dec 2009 13:35:00 +0000</pubDate><atom:updated>2009-12-09T14:40:39.214+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">detection failed</category><category domain="http://www.blogger.com/atom/ns#">install hotfix</category><title>The detection failed, this can be due to a corrupted installation database</title><description>If you ever encounter the above error when trying to install a hotfix or service pack for SharePoint (as I did), then there's a lot of possible answers around, but the right one is quite hard to find, so hopefully, I can help with pointing you in the right direction.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://moss2007.kbnk.info/index.php/Patching/solved-the-detection-failed-this-can-be-due-to-a-corrupted-installation-database.html"&gt;This site&lt;/a&gt; helped me a lot with solving the issue, so just go there, follow the second solution and if you're as lucky as I was, it will solve the problem and you'll be able to install hotfixes and all other stuff on your server again!&lt;br /&gt;&lt;br /&gt;Thanks to KbNk for posting this!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-8000315335259109828?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/a6NVnHmYPZ0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/a6NVnHmYPZ0/detection-failed-this-can-be-due-to.html</link><author>noreply@blogger.com (Tom)</author><thr:total>0</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2009/12/detection-failed-this-can-be-due-to.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-6315505790281818313</guid><pubDate>Thu, 15 Oct 2009 10:49:00 +0000</pubDate><atom:updated>2009-10-15T12:53:33.252+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Picture Library</category><category domain="http://www.blogger.com/atom/ns#">Infrastructure Update</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">Hotfix</category><title>Unable to select different display modes in picture library</title><description>Just a quick one this time... When you add a Picture Library to SharePoint, you usually can choose between three display modes: filmstrip, details and thumbnail. You can select these through a small menu that appears when you hover over the "All Items" view in the view picker. But what if you don't get this little menu?&lt;br /&gt;&lt;br /&gt;This was the case in the environment I was working in. Turned out that this was a bug caused by the installation of the WSS Infrastructure Update. Luckily for all people with this problem, there is a hotfix for this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/959644"&gt;http://support.microsoft.com/kb/959644&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just request the hotfix through this page and install it on your front end server and everything should work as it is supposed to work again!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-6315505790281818313?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/tMhWnHnj9eo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/tMhWnHnj9eo/unable-to-select-different-display.html</link><author>noreply@blogger.com (Tom)</author><thr:total>0</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2009/10/unable-to-select-different-display.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-4775080157686071371</guid><pubDate>Wed, 23 Sep 2009 10:49:00 +0000</pubDate><atom:updated>2009-09-23T12:54:50.868+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">field definition</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">feature</category><title>Unable to locate the xml-definition for FieldName with FieldId ...</title><description>If you're trying to deploy some custom site columns using a feature and the feature activates fine, but the columns don't show up and your logs give you the above error, then the solution is pretty simple: when you're defining your columns, you have to make sure to use brackets around your column guid, like this: &lt;strong&gt;{GUID}&lt;/strong&gt;. Deploy your feature again, deactivate it, activate it again and everything should work fine! You also have to use the brackets when you're referencing the column in a content type!&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href="http://edwin.vriethoff.net/2008/01/25/unable-to-locate-the-xml-definition-for-fieldname-with-fieldid-%E2%80%98id%E2%80%99/"&gt;Edwin Vriethoff&lt;/a&gt; for posting this!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-4775080157686071371?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/UKHU7XzwL00" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/UKHU7XzwL00/unable-to-locate-xml-definition-for.html</link><author>noreply@blogger.com (Tom)</author><thr:total>0</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2009/09/unable-to-locate-xml-definition-for.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-3098850464987701196</guid><pubDate>Tue, 22 Sep 2009 08:20:00 +0000</pubDate><atom:updated>2009-09-22T10:28:40.645+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">default scope</category><category domain="http://www.blogger.com/atom/ns#">Search scopes</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><title>Modify the default scope for your search box</title><description>Today I got asked how to modify the search box on a MOSS site so that it displayed "People" by default in stead of "All Sites". The customer already figured out a way to do this with code, but they weren't 100% sure about it. I had to search for this myself too, cause to be honest, I hadn't done this before, even though I'm already working with SharePoint for almost 3 years now... That's why I'm making this short post, so that all the other people who are trying to do this, know how easy it really is.&lt;br /&gt;&lt;br /&gt;To modify the default scope, go to your home page and navigate to "Site Actions” --&gt; “Site Settings” --&gt; “Modify All Site Settings". On this page, pick "Search scopes" under the Site Collection Administration. Here you'll see some different "Display groups", one of them is the "Search Dropdown", which is the search box you see on your SharePoint site. If you click on the "Search Dropdown" link, you'll be taken to a page with some settings for this group and the bottom one is where you set your default scope. So modify this to whatever you want, click OK and you're done!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-3098850464987701196?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/UR2tJY2pEsg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/UR2tJY2pEsg/modify-default-scope-for-your-search.html</link><author>noreply@blogger.com (Tom)</author><thr:total>0</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2009/09/modify-default-scope-for-your-search.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-6633617069084596337</guid><pubDate>Thu, 06 Aug 2009 08:35:00 +0000</pubDate><atom:updated>2009-08-06T10:39:27.822+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">IIS</category><category domain="http://www.blogger.com/atom/ns#">Windows SharePoint Services Timer</category><title>The path specified cannot be used at this time</title><description>When I opened my IIS manager (on a server with SharePoint 2007 installed) today and tried to connect to the localhost (which had always been possible in the past, without any changes done to the server), I suddenly got the error "The path specified cannot be used at this time". The solution for this is quite simple luckily... Just go to the services on your server and restart the Windows SharePoint Services Timer service. Then refresh your IIS manager and everything should be back to normal again!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-6633617069084596337?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/vwZStw2s0dg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/vwZStw2s0dg/path-specified-cannot-be-used-at-this.html</link><author>noreply@blogger.com (Tom)</author><thr:total>0</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2009/08/path-specified-cannot-be-used-at-this.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-4307251457573884076</guid><pubDate>Wed, 24 Jun 2009 14:04:00 +0000</pubDate><atom:updated>2009-06-24T16:12:41.618+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">pskill</category><category domain="http://www.blogger.com/atom/ns#">stopping</category><category domain="http://www.blogger.com/atom/ns#">timer service</category><category domain="http://www.blogger.com/atom/ns#">pstools</category><title>Service stuck in "stopping" state</title><description>A couple of days ago I wanted to restart the Windows SharePoint Services Timer service on one of our SharePoint servers because some timer jobs seemed to be stuck. When I tried this though, the state of the service became "stopping" and it stayed that way for hours. I tried stopping it with NET STOP, but this gave me an error that the service "could not be controlled in its current state". I read online that rebooting didn't help with most people and this also wasn't an option since this was a live server, but then I read about PsTools. This set of command line tools contains a little something called PsKill. This little tool kills the process for you, allowing you to start it again. In my case, I used it the following way:&lt;br /&gt;&lt;br /&gt;PsKill.exe \\moss-server owstimer&lt;br /&gt;&lt;br /&gt;This killed it immediately and I was able to start the service again.&lt;br /&gt;&lt;br /&gt;You do have to be careful with this though, since not all services can be killed without any risk (for example when a process is writing things to a database).&lt;br /&gt;&lt;br /&gt;One last thing, for your convenience: the link to PsTools: http://download.sysinternals.com/Files/PsTools.zip.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-4307251457573884076?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/brK2VFuAN4U" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/brK2VFuAN4U/service-stuck-in-stopping-state.html</link><author>noreply@blogger.com (Tom)</author><thr:total>0</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2009/06/service-stuck-in-stopping-state.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-151133176818792292</guid><pubDate>Thu, 18 Jun 2009 07:59:00 +0000</pubDate><atom:updated>2009-06-18T11:44:46.073+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">restore</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">timer service</category><title>OWSTIMER error when restoring a SharePoint site</title><description>When I was trying to restore a web application with a single site in it and one content database, I received the following two errors:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Error: Object OldIntranet (89) (previous name: Intranet (80)) failed in event OnRestore. For more information, see the error log located in the backup directory.&lt;br /&gt;SPUpdatedConcurrencyException: An update conflict has occurred, and you must re-try this action. The object SPWebApplication Name=OldIntranet (89) Parent=SPWebService is being updated by svc_moss_sql, in the OWSTIMER process, on machine MP-MOSS-INDEX01.  View the tracing log for more information about the conflict.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Error: Object SharePoint _OldIntranet89_Content (previous name: SharePoint _Intranet_Content) failed in event OnPostRestore. For more information, see the error log located in the backup directory.&lt;br /&gt;SPException: Cannot attach database to Web application. Use the command line tool or Central Administration pages to attach the database manually to the proper Web Application.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I tried every possible solution I found on the internet, but nothing worked. Then I decided to try the update with stsadm through the following command:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;stsadm -o restore -directory "\\fileshare\backupfolder" -restoremethod new -item&lt;br /&gt;"Farm\Windows SharePoint Services Web Application\Intranet (80)"&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;After doing this, I first got a new, different error about the Administration Service. I restarted this service and after that, the stsadm command also gave me the two previous errors. So then I decided to just turn off the Windows SharePoint Services Timer service... and what do you know, it worked! Afterwards, I also noticed that I had turned off the WSS Administration service, so if turning off the Timer service doesn't work, you can also try this one.&lt;br /&gt;&lt;br /&gt;I do know that turning off the Timer service in a live environment probably is not such a good idea, but well, if nothing else works, you might be forced to do so...&lt;br /&gt;&lt;br /&gt;I also didn't test doing the restore through Central Administration (since it had already been succesfully restored through stsadm), but feel free to give it a shot and let me know if it also works! (Although I doubt it, since I think the procedure through the Central Admin uses a timer job for this, which won't work if the Timer services has been stopped.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-151133176818792292?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/aOW22PKw7Rs" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/aOW22PKw7Rs/owstimer-error-when-restoring.html</link><author>noreply@blogger.com (Tom)</author><thr:total>2</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2009/06/owstimer-error-when-restoring.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-304739110131151811</guid><pubDate>Wed, 18 Mar 2009 20:07:00 +0000</pubDate><atom:updated>2009-03-18T21:11:12.681+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">task form</category><category domain="http://www.blogger.com/atom/ns#">workflow</category><title>Workflow task: Value does not fall within the expected range</title><description>If you get the above error when trying to open a task form in a workflow, then read on!&lt;br /&gt; &lt;br /&gt;Here's the situation where I got this error: I have a custom approval workflow where one user adds an order request through an InfoPath form. When the form gets submitted, the "IT Approval" group gets assigned the task to approve or reject the order. Also important is that security has been broken so that only the right people can see and approve the tasks. The whole thing is a bit more elaborate than this, but this is basically all you need to know to understand the problem and hopefully recognize it...&lt;br /&gt;&lt;br /&gt;Now, if someone in the IT Approval group goes to check his "My Tasks" page, he sees all the tasks assigned to the group. So far, so good... But when he tries opening a task, he gets an error page displaying the "Value does not fall within the expected range" error message.&lt;br /&gt;&lt;br /&gt;I've tried many different things, making sure the IT Approval group had contribute access to the task, read access to the site, the task list and the workflow history, but nothing seemed to work. However, there was one place that I missed: the original document.&lt;br /&gt;&lt;br /&gt;So if you're facing this problem and you're using custom security, check your InfoPath form (or any other kind of document that triggered the workflow) and make sure the approval user has read access to this file too. I don't know the exact reason for this, but I guess this is because the workflow is copying fields from the original file into the task form and apparently, this only works when the user can read the original file too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-304739110131151811?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/FNmf0uhF_wY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/FNmf0uhF_wY/workflow-task-value-does-not-fall.html</link><author>noreply@blogger.com (Tom)</author><thr:total>2</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2009/03/workflow-task-value-does-not-fall.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-406606942385211139</guid><pubDate>Thu, 12 Mar 2009 12:47:00 +0000</pubDate><atom:updated>2009-03-12T13:54:07.724+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">release mode</category><category domain="http://www.blogger.com/atom/ns#">Debugging</category><category domain="http://www.blogger.com/atom/ns#">No Symbols</category><category domain="http://www.blogger.com/atom/ns#">debug mode</category><title>Debugger: No symbols have been loaded</title><description>Just a quick post that can save you a lot of time.... I was debugging a SharePoint workflow that had already been deployed and everything, but it needed some extra changes. I never succeeded in debugging it though and it always gave me the "no symbols have been loaded for this assembly" message. After trying almost everything (restarting the server, rebuilding and deploying everything, clearing the .Net cache, ...), I found a post of someone saying something about "debug mode". Turned out my Visual Studio project was set in "Release" mode by the one who installed the application and you can't debug when it's in Release mode. To reset this, simply right click on your solution name, choose properties, click on "Configuration Properties" and under "Configuration", select "Debug" for all your projects. Then rebuild and deploy again (make sure you use the .dll files from the "debug" directory in stead of the "release" directory) and everything should debug fine again...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-406606942385211139?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/Icap0hhQH8g" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/Icap0hhQH8g/debugger-no-symbols-have-been-loaded.html</link><author>noreply@blogger.com (Tom)</author><thr:total>0</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2009/03/debugger-no-symbols-have-been-loaded.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-5941026699625383957</guid><pubDate>Thu, 21 Aug 2008 06:33:00 +0000</pubDate><atom:updated>2008-08-21T08:48:41.307+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">reset values</category><category domain="http://www.blogger.com/atom/ns#">InfoPath</category><title>Reset functionality for InfoPath</title><description>Something I really miss in InfoPath 2007 is the possibility to have a simple "reset" button, one that clears all your fields and lets you start all over. I didn't find any out-of-the-box functionality for this, so I wrote some code to make this work. So if you're looking for something that clears all your datasource's fields, try this piece of code:&lt;br /&gt;&lt;br /&gt;private void ClearAllFields()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Create a navigator and select the first group in your datasource&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;XPathNavigator nav = this.MainDataSource.CreateNavigator();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;XPathNodeIterator nodes = nav.SelectSingleNode("/my:myFields/my:group1", NamespaceManager).SelectChildren(XPathNodeType.Element);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ClearLevel(nodes);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private void ClearLevel(XPathNodeIterator nodes)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (nodes.MoveNext())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (nodes.Current.HasChildren)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ClearLevel(nodes.Current.SelectChildren(XPathNodeType.All));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;                &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (nodes.Current.NodeType == XPathNodeType.Text)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Reset the value to an empty string&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nodes.Current.SetValue("");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}    &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Just put the ClearAllFields() method in your button.clicked event handler and it should all work just fine! Make sure you select the right node to start with. Replace the "/my:myFields/my:group1" with the path to your top level group.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-5941026699625383957?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/Qm0Cw7lLKyQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/Qm0Cw7lLKyQ/reset-functionality-for-infopath.html</link><author>noreply@blogger.com (Tom)</author><thr:total>1</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2008/08/reset-functionality-for-infopath.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-7398292797332591895</guid><pubDate>Fri, 27 Jun 2008 07:06:00 +0000</pubDate><atom:updated>2008-06-27T09:20:34.859+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">list name</category><category domain="http://www.blogger.com/atom/ns#">delete folder</category><title>The specified name is already in use.</title><description>If the above error looks familiar and you can't seem to get rid of it, then read on, I might have a solution for you then!&lt;br /&gt;&lt;br /&gt;When trying to activate a feature that would create a list, I received the following error:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;The specified name is already in use.&lt;br /&gt;&lt;br /&gt;A list, survey, discussion board, or document library cannot have the same name as another list, survey, discussion board, or document library in this Web site.&lt;br /&gt;  Use your browser's Back button, and type a new name.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The biggest problem was that the list really didn't exist. When I went to "All Site Content", nothing was there with the name of the list I was creating. I also looped over all my lists with three lines of code I quickly wrote, but nothing there either... After some searching on our good friend Google, I learned that apparently, if you open the site with SharePoint Designer, there is a folder there with that name. Just delete the folder and everything works fine again...&lt;br /&gt;&lt;br /&gt;But what if you don't have SharePoint Designer installed and you can't intall it immediately, like me? Well, then these few lines of code might help you out:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;SPSite site = null;&lt;br /&gt;SPWeb web = null;&lt;br /&gt;&lt;br /&gt;using (site = new SPSite(siteURL))&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;using (web = site.OpenWeb())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;web.Folders[nameOfListToCreate].Delete();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-7398292797332591895?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/zklH0H3m0jE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/zklH0H3m0jE/specified-name-is-already-in-use.html</link><author>noreply@blogger.com (Tom)</author><thr:total>0</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2008/06/specified-name-is-already-in-use.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-6463592251892911905</guid><pubDate>Thu, 03 Apr 2008 06:29:00 +0000</pubDate><atom:updated>2008-04-03T08:41:37.519+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">install wsp</category><category domain="http://www.blogger.com/atom/ns#">solution package</category><category domain="http://www.blogger.com/atom/ns#">manifest.xml</category><category domain="http://www.blogger.com/atom/ns#">MOSS</category><title>The file manifest.xml does not exist in the solution package</title><description>It's been a while since my last post (I'd really need to write that post on how to integrate Dynamics AX into MOSS ) and this one will also just be a quickie...&lt;br /&gt;&lt;br /&gt;When trying to add my solution to the solution store, I got the error &lt;em&gt;The file manifest.xml does not exist in the solution package&lt;/em&gt;. This was weird, because I didn't change anything to the deployment parts of my solution and it had always worked before... Also, the manifest.xml file seemed to be inside the wsp file just fine. Thanks to &lt;a href="http://blogs.meslab.nl/mes/"&gt;this blog&lt;/a&gt;, I was able to solve it!&lt;br /&gt;&lt;br /&gt;Apparently, you get this error the moment your package gets too big. Mark Beij mentions 1440kb, but with me it already occured when my package got over 1400kb. The solution is to add the following lines to the top of your cab.ddf file:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;.Set CabinetFileCountThreshold=0 &lt;br /&gt;.Set FolderFileCountThreshold=0 &lt;br /&gt;.Set FolderSizeThreshold=0 &lt;br /&gt;.Set MaxCabinetSize=0 &lt;br /&gt;.Set MaxDiskFileCount=0&lt;br /&gt;.Set MaxDiskSize=0&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Now that all the size limitations are off, just make your wsp file again and you should be able to add your solution again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-6463592251892911905?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/QCq1_40qWV4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/QCq1_40qWV4/file-manifestxml-does-not-exist-in.html</link><author>noreply@blogger.com (Tom)</author><thr:total>4</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2008/04/file-manifestxml-does-not-exist-in.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-5114221277699492821</guid><pubDate>Fri, 07 Mar 2008 17:23:00 +0000</pubDate><atom:updated>2008-03-07T18:47:36.942+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Custom properties</category><category domain="http://www.blogger.com/atom/ns#">filtering</category><category domain="http://www.blogger.com/atom/ns#">SPGridView</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">multiple values</category><title>Filtering on multiple values with SPGridView</title><description>If you want to show list data in a Web Part, one of the options to consider is using the SPGridView control. There is &lt;a href="http://www.sharepointblogs.com/bobsbonanza/archive/2007/05/14/filtering-with-spgridview.aspx"&gt;a nice article on Bob's SharePoint Bonanza&lt;/a&gt; on how to set this up. This really is a great article, but it won't allow you to filter on multiple columns. My customer wanted to be able to do this though and he also wanted the Web Part to remember the filtering and sorting options when leaving the page.&lt;br /&gt;&lt;br /&gt;I was able to make this work using custom Web Part properties. Here's how to do it: &lt;br /&gt;&lt;br /&gt;- First, set up your SPGridvVew and it's datasource as described in Bob's article. When you're done, also add a private string to your Web Part. This string will remember the previous filter.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;private string prevFilter = ""; &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Next, find the following line in the SetupObjectDataSource method: &lt;br /&gt;&lt;br /&gt;&lt;em&gt;dataSource.FilterExpression = (string)ViewState["FilterExpression"]; &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Below this line, add the following line: &lt;br /&gt;&lt;br /&gt;&lt;em&gt;prevFilter = dataSource.FilterExpression; &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;- Your next step is two create two custom properties: one for the filter settings and one for sorting. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;private string userSettingsFilter; &lt;br /&gt;private string userSettingsSort; &lt;br /&gt;&lt;br /&gt;///&lt;summary&gt; &lt;br /&gt;///Hidden property to remember filtering options set by the user &lt;br /&gt;///&lt;/summary&gt; &lt;br /&gt;[Browsable(false), Category("Advanced"), &lt;br /&gt;DefaultValue(""), &lt;br /&gt;Personalizable(PersonalizationScope.User), &lt;br /&gt;FriendlyName("User Settings Filter"), Description("Hidden user settings for filtering.")] &lt;br /&gt;public string UserSettingsFilter &lt;br /&gt;{ &lt;br /&gt;get &lt;br /&gt;{ &lt;br /&gt;return userSettingsFilter; &lt;br /&gt;} &lt;br /&gt;set &lt;br /&gt;{ &lt;br /&gt;userSettingsFilter = value; &lt;br /&gt;} &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;///&lt;summary&gt; &lt;br /&gt;///Hidden property to remember sorting options set by the user &lt;br /&gt;///&lt;/summary&gt; &lt;br /&gt;[Browsable(false), Category("Advanced"), &lt;br /&gt;DefaultValue(""), &lt;br /&gt;Personalizable(PersonalizationScope.User), &lt;br /&gt;FriendlyName("User Settings Sort"), Description("Hidden user settings for sorting.")] &lt;br /&gt;public string UserSettingsSort &lt;br /&gt;{ &lt;br /&gt;get &lt;br /&gt;{ &lt;br /&gt;return userSettingsSort; &lt;br /&gt;} &lt;br /&gt;set &lt;br /&gt;{ &lt;br /&gt;userSettingsSort = value; &lt;br /&gt;} &lt;br /&gt;} &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;- In the OnPreRender method, you first check if there is a sort expression set. If this is the case, then save it. Next, check the filter that has been saved to the ViewState. Depending on the column title (is there already a filter on that column or not), save the filter setting to the custom filter property by appending it with either " and " or " or ".&lt;br /&gt;&lt;br /&gt;&lt;em&gt;protected override void OnPreRender(EventArgs e) &lt;br /&gt;{ &lt;br /&gt;//Check if there is a sort expression set. If this is the case: save it. &lt;br /&gt;if (gridView.SortExpression != "") &lt;br /&gt;{ &lt;br /&gt;userSettingsSort = gridView.SortExpression + "&amp;" + gridView.SortDirection; &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;//Get the filter expression into the viewstate. If a filter is set, add it to the saved filter expression. &lt;br /&gt;ViewState["FilterExpression"] = dataSource.FilterExpression; &lt;br /&gt;if (prevFilter != string.Empty &amp;&amp; ViewState["FilterExpression"].ToString() == string.Empty) &lt;br /&gt;{ &lt;br /&gt;userSettingsFilter = ""; &lt;br /&gt;} &lt;br /&gt;if (ViewState["FilterExpression"].ToString() != "") &lt;br /&gt;{ &lt;br /&gt;if (userSettingsFilter != null) &lt;br /&gt;{ &lt;br /&gt;if (userSettingsFilter != "") &lt;br /&gt;{ &lt;br /&gt;//If there already is a filter on a certain column and the user adds another value of this column,&lt;br /&gt;//add it with an "or" expression &lt;br /&gt;if (userSettingsFilter.Contains(ViewState["FilterExpression"].ToString().Substring(0, ViewState["FilterExpression"].ToString().IndexOf('=') + 1)))&lt;br /&gt;{ &lt;br /&gt;int tempIndex = userSettingsFilter.IndexOf(ViewState["FilterExpression"].ToString().Substring(0, ViewState["FilterExpression"].ToString().IndexOf('=') + 1));&lt;br /&gt;userSettingsFilter = userSettingsFilter.Insert(tempIndex, "("); &lt;br /&gt;string tempSettings = userSettingsFilter.Substring(tempIndex); &lt;br /&gt;if (tempSettings.Contains(" and ")) &lt;br /&gt;{ &lt;br /&gt;userSettingsFilter = userSettingsFilter.Insert(tempIndex + tempSettings.IndexOf(" and "), " or " + ViewState["FilterExpression"] + ") ");&lt;br /&gt;} &lt;br /&gt;else &lt;br /&gt;{ &lt;br /&gt;userSettingsFilter = userSettingsFilter.Insert(tempIndex + tempSettings.Length, " or " + ViewState["FilterExpression"] + ") ");&lt;br /&gt;} &lt;br /&gt;} &lt;br /&gt;else &lt;br /&gt;{ &lt;br /&gt;userSettingsFilter = userSettingsFilter + " and " + ViewState["FilterExpression"].ToString();&lt;br /&gt;} &lt;br /&gt;} &lt;br /&gt;else &lt;br /&gt;{ &lt;br /&gt;userSettingsFilter = ViewState["FilterExpression"].ToString(); &lt;br /&gt;} &lt;br /&gt;} &lt;br /&gt;else &lt;br /&gt;{ &lt;br /&gt;userSettingsFilter = ViewState["FilterExpression"].ToString(); &lt;br /&gt;} &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;//Save the changed properties &lt;br /&gt;this.SetPersonalizationDirty(); &lt;br /&gt;base.OnPreRender(e); &lt;br /&gt;}&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;- Next, in the Render method, use the saved filter settings on the datasource's FilterExpression. If a sort setting has been saved, sort the gridview either ascending or descending (depending on the text in the saved setting) on the saved column.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;protected override void Render(HtmlTextWriter writer) &lt;br /&gt;{ &lt;br /&gt;dataSource.FilterExpression = userSettingsFilter; &lt;br /&gt;&lt;br /&gt;if (userSettingsSort != null) &lt;br /&gt;{ &lt;br /&gt;if (userSettingsSort != "")&lt;br /&gt;{&lt;br /&gt;if (userSettingsSort.ToLower().Contains("ascending")) &lt;br /&gt;{ &lt;br /&gt;gridView.Sort(userSettingsSort.Substring(0, userSettingsSort.IndexOf('&amp;')), SortDirection.Ascending); &lt;br /&gt;} &lt;br /&gt;else &lt;br /&gt;{ &lt;br /&gt;gridView.Sort(userSettingsSort.Substring(0, userSettingsSort.IndexOf('&amp;')), SortDirection.Descending); &lt;br /&gt;} &lt;br /&gt;}&lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;gridView.DataBind(); &lt;br /&gt;base.Render(writer); &lt;br /&gt;}&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;There are a few disadvantages when using this method though. Your list won't show icons showing which columns are being filtered on and you will only get the option to remove the filter you've last set. Due to this, removing that last filter value, will automatically remove all filters. Also, if you go away from the page and then return, you won't have the option to undo the filter and you will have no indication that there is a filter enabled (except for the fact that not all fields are shown). To remove this filter, you need to set an extra filter and then remove it again, so all filter options are cleared. Another disadvantage is when you set your filter options in a certain way that no data is shown, your heading will disappear and you won't be able to clear the filter anymore, so you'll be stuck with an empty SPGridView forever. To solve this, you can either make the custom filter property visible, so you can edit your Web Part and manually remove the filter, or you can add a button to the Web Part that clears the filter for you.&lt;br /&gt;&lt;br /&gt;A better way of implementing this is rendering the view as html (see one of my previous posts). This way, the list will have the same look and feel as a default SharePoint list. I think that this last solution is better in almost every way, but for some situations you might need to use the SPGridView, for example when you need to use a certain datasource (which was the situation I was in, it was impossible for me to display the same data that I got from the datasource) and with this implementation, you're also able to filter on multiple values of one column, which is not possible with the default SharePoint list.&lt;br /&gt;&lt;br /&gt;If you have any comments, remarks, possible improvements or questions, just shoot!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-5114221277699492821?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/gR5puzCEB2g" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/gR5puzCEB2g/filtering-on-multiple-values-with.html</link><author>noreply@blogger.com (Tom)</author><thr:total>6</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2008/03/filtering-on-multiple-values-with.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-1329382887122865841</guid><pubDate>Mon, 25 Feb 2008 08:22:00 +0000</pubDate><atom:updated>2008-03-04T15:17:50.789+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Custom Web Parts</category><category domain="http://www.blogger.com/atom/ns#">properties</category><title>Custom Web Part properties not showing</title><description>Just a quick note: if you're having trouble getting your custom properties to show when writing your own Web Part, check which class you're inheriting from. If your Web Part inherits System.Web.UI.WebControls.WebParts.WebPart, try changing this into Microsoft.SharePoint.WebPartPages.WebPart and then test your properties again, they may just work now... (if you haven't made any other mistakes of course ;-))&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Update: apparently, you can also get this to work when inheriting from System.Web.UI.WebControls.WebParts.WebPart. To do this, change the line "WebPartStorage(Storage.Personal)" (above your properties) to "Personalizable(PersonalizationScope.User)". If you were using "this.SaveProperties = true" to save the changes done to your properties, this won't be available when inheriting from the System.Web.UI.WebControls.WebParts.WebPart class. You can use this.SetPersonalizationDirty() instead.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-1329382887122865841?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/vA5l1p4e87s" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/vA5l1p4e87s/custom-web-part-properties-not-showing.html</link><author>noreply@blogger.com (Tom)</author><thr:total>0</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2008/02/custom-web-part-properties-not-showing.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-445753774766692454</guid><pubDate>Thu, 21 Feb 2008 21:03:00 +0000</pubDate><atom:updated>2008-02-21T22:22:05.825+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">CAML query</category><category domain="http://www.blogger.com/atom/ns#">SPList</category><category domain="http://www.blogger.com/atom/ns#">RenderasHtml</category><category domain="http://www.blogger.com/atom/ns#">MOSS</category><title>Rendering a list programmatically</title><description>Today, I was trying to display list data in a Web Part programmatically and have it behave the same way as the default SharePoint lists do. I was given a Web Part that was using an SPGridView to do this, but the filtering in it didn't work the way it was supposed to and it also didn't show which column it was filtered on (as default SharePoint lists do).&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href="http://velvetfog.wordpress.com/2007/05/21/extending-the-list-view-web-part/"&gt;this post&lt;/a&gt;, I was able to render the list the same way default lists get rendered. Here's an example on how to do it for the tasks list, including an example Caml query that sorts the view by title and filters it so that it shows only the incomplete tasks assigned to the current user. Beware though: when using this Caml query, sorting and filtering won't work since it will always render the view by the conditions you have provided in your query. Still working on solving this...&lt;br /&gt;&lt;br /&gt;&lt;em&gt;private string html;&lt;br /&gt;&lt;br /&gt;protected override void OnPreRender(EventArgs e)&lt;br /&gt;{&lt;br /&gt;using (SPSite mySite = SPContext.Current.Site)&lt;br /&gt;{&lt;br /&gt;using (SPWeb myWeb = mySite.OpenWeb())&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;SPList myList = myWeb.Lists["Tasks"];&lt;br /&gt;SPView myView = myList.Views["All Tasks"];&lt;br /&gt;&lt;br /&gt;SPQuery myQuery = new SPQuery(myView);&lt;br /&gt;&lt;br /&gt;myQuery.Query = "&amp;lt;OrderBy&amp;gt;&amp;lt;FieldRef Name=\"Title\" /&amp;gt;&amp;lt;/OrderBy&amp;gt;&amp;lt;Where&amp;gt;&amp;lt;And&amp;gt;&amp;lt;Eq&amp;gt;&amp;lt;FieldRef Name=\"AssignedTo\" /&amp;gt;&amp;lt;Value Type=\"User\"&amp;gt;&amp;lt;UserID/&amp;gt;&amp;lt;/Value&amp;gt;&amp;lt;/Eq&amp;gt;&amp;lt;Neq&amp;gt;&amp;lt;FieldRef Name=\"Status\" /&amp;gt;&amp;lt;Value Type=\"Choice\"&amp;gt;Completed&amp;lt;/Value&amp;gt;&amp;lt;/Neq&amp;gt;&amp;lt;/And&amp;gt;&amp;lt;/Where&amp;gt;";&lt;br /&gt;&lt;br /&gt;html = myList.RenderAsHtml(myQuery);&lt;br /&gt;&lt;br /&gt;this.Title = "Tasks";&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected override void Render(HtmlTextWriter writer)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;writer.Write(html);&lt;br /&gt;&lt;br /&gt;}&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-445753774766692454?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/RZDJCerJev0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/RZDJCerJev0/rendering-list-programmatically.html</link><author>noreply@blogger.com (Tom)</author><thr:total>0</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2008/02/rendering-list-programmatically.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-8249435877796685668</guid><pubDate>Tue, 22 Jan 2008 16:44:00 +0000</pubDate><atom:updated>2008-01-24T17:43:26.691+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dynamics Ax</category><category domain="http://www.blogger.com/atom/ns#">Axapta</category><category domain="http://www.blogger.com/atom/ns#">MOSS</category><category domain="http://www.blogger.com/atom/ns#">register SharePoint site in Ax</category><title>“This site is not found in the SharePoint configuration database.” when registering a site in Dynamics Ax</title><description>At the moment, I am working on integrating MOSS and Dynamics Ax, so you can expect some updates on this topic the next few weeks. &lt;br /&gt;&lt;br /&gt;If you want to use the out-of-the-box integration, you can either create SharePoint sites using the Dynamics Enterprise Portal site template, or you can register the site in Ax to be able to use the Dynamics Web Parts in your existing SharePoint site. For my situation, I needed this last option, but when testing this, I regularly got the next error:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Error:&lt;br /&gt;This site is not found in the SharePoint configuration database.&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;The solution for this problem may or may not be very simple... If you're lucky, just remove the slash at the end of the url and you shouldn't get the error anymore. With other sites, this won't work though and I haven't found the solution to this either, so if you were able to solve it, feel free to let me know how you did it!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Update: Also check your casing. This seemed to work in my situation…&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-8249435877796685668?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/y8nNUpSAMPM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/y8nNUpSAMPM/this-site-is-not-found-in-sharepoint.html</link><author>noreply@blogger.com (Tom)</author><thr:total>1</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2008/01/this-site-is-not-found-in-sharepoint.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-8190574592504003981</guid><pubDate>Mon, 14 Jan 2008 19:45:00 +0000</pubDate><atom:updated>2008-01-14T20:46:51.763+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">Cannot find the path</category><category domain="http://www.blogger.com/atom/ns#">Role Assignments</category><title>Error: “Cannot find the path specified” when adding role assignments</title><description>If you ever get the error “The system cannot find the path specified. (Exception from HRESULT: 0x80070003)” while adding role assignments to a library or web in SharePoint, then this might help you solve your problem… I was trying to add role assignments to a library (using library.RoleAssignments.Add(newRole)), which had already worked perfectly before, but when trying it this time, I got the error I’ve mentioned before. The key to solving my issue was something that didn’t include paths at all: I just forgot to break the role inheritance of my library. So if you ever encounter this error, just add the following lines, they will most probably solve your issue:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;library.BreakRoleInheritance(true);&lt;br /&gt;library.Update();&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-8190574592504003981?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/HSplAJO_nw8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/HSplAJO_nw8/error-cannot-find-path-specified-when.html</link><author>noreply@blogger.com (Tom)</author><thr:total>4</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2008/01/error-cannot-find-path-specified-when.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-7259446474095467993</guid><pubDate>Fri, 28 Dec 2007 22:35:00 +0000</pubDate><atom:updated>2007-12-28T23:47:40.467+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">MCTS Web Applications</category><title>MCTS: .NET Framework 2.0 Web Applications</title><description>Yesterday, I passed the 70-528 exam, so yes, I'm a Microsoft Certified Technology Specialist in .NET Framework 2.0 Web Applications now! What a mouthfull... I'm glad I got through it in one time, seeing how I had to study it during the holidays...&lt;br /&gt;&lt;br /&gt;If you're taking the exam too and you want some general pointers: both custom controls and personalization were really important topics on my exam. However, don't focus on these two topics too much, since every exam can be completely different... But they did form a large part of my exam, so it won't hurt you to reread these topics an extra time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-7259446474095467993?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/J-x75b09ZLg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/J-x75b09ZLg/mcts-net-framework-20-web-applications.html</link><author>noreply@blogger.com (Tom)</author><thr:total>1</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2007/12/mcts-net-framework-20-web-applications.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7253450534711998018.post-6307244203507862000</guid><pubDate>Sun, 09 Dec 2007 14:00:00 +0000</pubDate><atom:updated>2007-12-09T15:05:30.187+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Visual Studio</category><category domain="http://www.blogger.com/atom/ns#">protected memory</category><title>Attempted to read or write protected memory. This is often an indication that other memory is corrupt.</title><description>If you ever get the error "Attempted to read or write protected memory. This is often an indication that other memory is corrupt.", take a look at the rest of this post, it might save you a lot of time... I got it when writing a console application for SharePoint, but I think it might occur with other sorts of applications too.&lt;br /&gt; &lt;br /&gt;I had been looking for a solution for many days and had seen lots of possible causes online, but none of them applied to my situation. Today, I noticed for the first time that Visual Studio gave me a warning when building. I hadn't noticed this before because there weren't any errors, so it just said "build succeeded", so I thought everything in my application was fine and it must have been something about the setup of the test server. Well, I clearly was wrong... Here's what the warning said:&lt;br /&gt; &lt;br /&gt;&lt;em&gt;Found conflicts between different versions of the same dependent assembly.&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;When double clicking this warning, Visual Studio asks you if you want it to fix the errors by adding binding redirect records in the app.config file. If you choose "yes", then Visual Studio adds some lines to the app.config file. Here's what it added for me:&lt;br /&gt; &lt;br /&gt;&lt;em&gt;&amp;lt;runtime&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;dependentAssembly&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;assemblyIdentity name="Microsoft.SharePoint.Library" publicKeyToken="71E9BCE111E9429C" culture="neutral"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/dependentAssembly&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;dependentAssembly&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;assemblyIdentity name="Microsoft.SharePoint" publicKeyToken="71E9BCE111E9429C" culture="neutral"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/dependentAssembly&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;dependentAssembly&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;assemblyIdentity name="Microsoft.SharePoint.Security" publicKeyToken="71E9BCE111E9429C" culture="neutral"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/dependentAssembly&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;dependentAssembly&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;assemblyIdentity name="Microsoft.SharePoint.Dsp" publicKeyToken="71E9BCE111E9429C" culture="neutral"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/dependentAssembly&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/assemblyBinding&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/runtime&amp;gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Now just rebuild your project and try running it again... Everything should be working fine now!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7253450534711998018-6307244203507862000?l=ph-tom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ph-tom/~4/8GOexCtD7iQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ph-tom/~3/8GOexCtD7iQ/attempted-to-read-or-write-protected.html</link><author>noreply@blogger.com (Tom)</author><thr:total>1</thr:total><feedburner:origLink>http://ph-tom.blogspot.com/2007/12/attempted-to-read-or-write-protected.html</feedburner:origLink></item></channel></rss>

