|
I've been getting the following error on Vista, every 8 minutes:
Usbperf data collection failed. Collect function called with usupported Query Type.
From what I've been reading, it's not a bad error and it can safely be ignored. But when you're working with event logs on a daily basis, it's really annoying to see this error in the Application log.
I finally found a workaround!
From the kb article (http://support.microsoft.com/kb/944344):
To work around this behavior, you may disable the usbperf performance library altogether by setting the following registry key.
1. Start Registry Editor (Regedt32.exe).
2. Locate and then click the following key in the registry:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbhub\Performance]
3. On the Edit menu, click Add Value, and then add the following registry value:
Value name: Disable Performance Counters Data type: REG_DWORD Radix: Decimal Value data: 1
4. Quit Registry Editor.
|
| We've been using at Vertigo Office 2007 and MOSS 2007 for over a year now. We switched our blogs to MOSS for its integration with Office 2007. Creating a new blog post is as easy as creating a new word document.
People have often asked me however, how do you edit existing posts???!
The lame way :(
In your Posts SharePoint list:
Yuk! It's an ok interface for editing a typo but try to add an image and you'll feel the pain L.
The nice way :)
Start in Word 2007, not SharePoint:
First, create a new word document
Select new blog post, then ok
You don't really care about the new blog post you've opened. Instead click on Open Existing.
Select the one you want to edit, then ok.
Make your modifications, click Publish, and voila! You'll even get a message your post was successfully republished.
|
| Well it's been close to a year now since SharePoint 2007 was released! I remember a year ago how it was really tough trying to figure out how to customize, deploy, manage, and patch bugs in SharePoint.
In the past year, many teams have spawned SharePoint addons which make SharePoint development much nicer and faster. You'll find below a few articles I found useful.
Fixing the user credential prompt on Vista with Office 2007 & MOSS 2007
It's been an issue at Vertigo for the past year and we're glad to have found a solution to it! Basically, when accessing Office docs stored on MOSS 2007, from a Vista machine with Office 2007, you'll be prompted for your credentials even though you're already authenticated on a domain.
Hotfixes to install on your Vista box:
After installing both fixes, your credentials will be passed correctly. I tested it on my two machines. For reference, I got it from this article.
SharePoint with Forms Authentication (fully featured and simple to install!)
It's been done in a lot of places, but these guys made it quite simple to implement on a SharePoint install. It has all of the forms based auth pages you need, with barely any effort to install. They even have a CAPTCHA to prevent bot registration. Check it out:
http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=CKS&ReleaseId=7675
For picks and more explanation, see the team's blog post.
SharePoint with Live Authentication!
What a relief! We had to implement Live authentication ourselves and it was not pretty. Now it's packaged, ready to go:
https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=CKS&ReleaseId=7746
For picks and more explanation, see the team's blog post.
Customizing pages in the "_layouts" folder
These are typically settings pages, but also data entry and security management. I would recommend method 1 too:
http://support.microsoft.com/kb/944105/en-us
LINQ to SharePoint
How better does it get? I mean who likes writing CAML and talking to the object model.
The VS 2008 Beta 2 addon (RTM next month?): http://www.codeplex.com/LINQtoSharePoint
I also found a nice tutorial about it:
|
|
Problem
By default the reports you'll view on your team system installation will be based on data which is 1 hour old. We found this delay to be an issue with our daily scrum meetings. This affects the eScrum templates but I noticed the Conchango and MSFT Agile templates should also be affected!
Objective
Be able to view eScrum reports such as the sprint burndown chart based on close to real time sprint data. In our case we chose a 2 minute interval.
There are two variables delaying the reports:
- Age of the report data
- Report caching
Improving the "age" of the report data
How old is it? 1 hour!
Why is it a problem? Because we found most people update their task hours a few minutes before the daily standup, and we look at the sprint burndown chart during the standup!
So why is the data an hour old?
EScrum reports do not directly query the "live" Team System DB. They query an analysis services cube TFSWarehouse, which queries a TS warehouse database TFSWarehouse (a new version of eScrum goes to the warehouse directly but it's the same issue). That warehouse database gets populates every hour by a service called TFSServerScheduler running on the Team System front end box; the service queries the TS "live" databases to populate TFSWarehouse.
The Fix:
- Logon to your Team System front end server.
- Query the following web service in IE: http://localhost:8080/Warehouse/v1.0/warehousecontroller.asmx?op=ChangeSetting . This is how you change settings of the TFSServerScheduler service (see MSDN documentation)
-
Set the RunIntervalSeconds setting to a new value. In this case we chose 120 seconds (2 minutes).
-
Restart the TFSServerScheduler service in the windows service manager.
Performance impact:
I monitored the TS servers for CPU/memory spikes and did not notice anything significant. The service creates a 40% CPU utilization on 2/4 CPUs for about 3 seconds. Then it goes back down to ~10%.
Vertigo has a fairly sizable amount of projects but the performance impact varies from machine to company to amount of data. I would suggest you monitor your TS servers after you make the change.
Removing Report Caching
I noticed the reports team system were rendering were cached on demand for 30 minutes. Hence if someone had checked the Sprint burndown anytime before our daily standup, we would not get the updated data until 30 minutes later.
Solution:
- Connect to SQL reporting services on your Team System web server
- Go to Home -> [Project Name]
-
For all reports under this project:
- Go to [Report Name]-> properties -> Execution
-
Set to "Do not cache temporary copies of this report".
This will render reports on demand. The only downside is that you have to do this for each report of each project based on the eScrum template.
We can now view the eScrum reports knowing they are at most 2 minutes old! |
|
The day is Friday July 6th 2007.
8:30AM: Parked my car in front of the office. Beautiful California day.
12:30PM: My colleagues alert me of the situation outside… my car is covered with bird excrement.
12:31PM: Looking at it, I'm wondering if this is real, half laughing (this is my new 335i "just washed two days ago" car)
12:35PM: Driving to the car wash – mostly worried about all this excrement on the paint under the sun.
1:00PM: I have a "mostly" clean car.
7PM: Finishing off the detailing manually.
7:30PM: The car is back to its original shiny state. I have a beer and reflect on this odd day.
Illustrated: a horde of birds unleashing on my car. What you don't see are the two cars parked next to me with not a single drop on them.

|
|
There is a slight security hole in the SharePoint 2007 RTM version (WSS 3.0 or MOSS 2007). When anonymous access is setup and you allow anonymous users to view a library, they will have by default the ability to browse all items in this library. Maybe you do want your users to view browse through all items, but if you don't read below…
All your users need to do to explore your files is add: "forms/allitems.aspx" at the end of any document library you've enabled for anonymous access. For example, "http://yoursite/pages/forms/allitems.aspx".
What I mean in pictures…
The Issue
Let's say you store your pictures, css, etc in a style library very much like the Collaboration Template sets up for you:
You've setup your anonymous users to be able to read the styles and images as these will serve your anonymous pages:
What SharePoint doesn't tell you is that not only it allowed users to read individual items, but it also allowed to browse through your whole library. In ISS terms it would be similar to giving "Directory Browsing permissions".
The Fix
-
Enable lockdown mode
This mode will prevent users from browsing your anonymous libraries while still giving them access to individual elements. This will only work on the libraries you anonymous enable after you activate the lockdown mode (hence the #2 point).
The following TechNet article explains in detail lockdown mode:
http://technet2.microsoft.com/Office/en-us/library/f507f5d6-4c9d-4f98-909f-069c53b9a3f61033.mspx?mfr=true
Simply open a command prompt window on one of your web servers and type:
stsadm -o activatefeature -url <site collection url> -filename ViewFormPagesLockDown\feature.xml
-
What is not said is that you have to reenable anonymous access on every list. Activating lockdown mode will not crawl through your lists and set proper permissions.
So first uncheck and click ok:
Then recheck and click ok:
Now your site is secure!
And if you need to lockdown a non anonymous document library…
Set the library permissions to "Restricted Read" permissions. It will let your users read individual permissions but not let them browse the contents of the directory. Note this will not work on lists; only document libraries. I'll try to find the right set of perms for lists.
|
| Problem:
Analyzing the event logs of several of our SharePoint servers, I found the following error repeating in two logs:
Application event:
Event Type: Error
Event Source: Windows SharePoint Services 3
Event Category: (964)
Event ID: 6398
Date: 3/29/2007
Time: 11:30:00 AM
User: N/A
Computer: xxxxxxxxxxxxxx
Description:
The Execute method of job definition Microsoft.SharePoint.Search.Administration.SPSearchJobDefinition (ID c5427b38-db0b-49da-86af-06db6b579744) threw an exception. More information is included below.
Retrieving the COM class factory for component with CLSID {629DA12E-9AD5-4FEC-B886-42C5982C5109} failed due to the following error: 80070005.
System Event:
Event Type: Error
Event Source: DCOM
Event Category: None
Event ID: 10016
Date: 3/29/2007
Time: 11:30:00 AM
User: xxxxxxxxxxxxxx
Computer: xxxxxxxxxxxxxx
Description:
The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
{629DA12E-9AD5-4FEC-B886-42C5982C5109}
to the user xxxxxxxxxxxxxx SID (S-1-5-21-1850885132-1290235432-1578531482-4359). This security permission can be modified using the Component Services administrative tool.
Cause (with Photos!):
After a little digging in the registry, I found the user account the spsearch service (Windows SharePoint Services Search Gathering Manager) ran under did not have local activation rights. In other words, the user did not have the rights to start the search crawler service.
Doing a search in the registry of the SharePoint server for the CLSID, I found: HKEY_CLASSES_ROOT\CLSID\{629DA12E-9AD5-4FEC-B886-42C5982C5109} .
Now let's look at the Component Services manager for the AppID…Found the ID! This is the component missing local activation rights.
You'll even find the service it's trying to launch. The user in this service needs local activation rights:
Resolution:
- Click Start, click Run, type dcomcnfg in the Open box, and then click OK.
- Expand Component Services, expand Computers, expand My Computer, and then click DCOM Config.
- Right-click SPSearch, and then click Properties.
- Click the Security tab.
- Under Launch and Activation Permissions, click Edit.
- In the Launch Permission dialog box, click Add.
- In the Select Users, Computers, or Groups dialog box, type the domain user account that you specified as the Windows SharePoint Services 3.0 service account, click Check Names, and then click OK.
- In the Permissions for UserName list, click to select the Allow check box that is next to Local Activation, and then click OK two times.
|
|
Added 6/25/07: Given the popularity of my post I must put a word of caution. Allowing executable extensions give you more freedom but less security (I've seen viruses pass AVs before). I would recommend allowing unsafe attachments just for a specific email, and undoing it after downloading the attachments. Of course make sure the email is from a trusted source and still treat it as if it's a virus by default (i.e. scan it, look for patterns in the email body, etc).
I'm sure you've seen before "Outlook blocked access to the following potentially unsafe attachments: xxx.exe":
I found there's very little documentation out there on how to lower the security level or allow a file a know source sent you. You'll find below the registry hack to allow specific file types Outlook blocks by default. There's also a kb article about it and as the article mentions make sure you backup your registry before you start editing it.
Run -> regedit and go to :
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Outlook\Security
-
Backup:
- Add a new String Value called: Level1Remove
- Edit it and save the value data to the extension you wish to allow (add a semi-colon delimiter for multiple extensions).
Ex: .bat or .bat;.exe;.scr
- Restart outlook (no need to restart your computer) !
|
|
I found a SharePoint rich text editor called radeditor which I would recommend for any SharePoint application. It's free to use with the paid version of SharePoint: MOSS (Microsoft Office SharePoint Server) 2007, not WSS.
The main features of radeditor:
- Cross-browser support: IE & Firefox
- Web Part: you can use this web part to add rich text content (HTML) to a SharePoint page. SharePoint already has a web part called Content Editor Web Part but radeditor is much easier to use and provides more functionality.
- Rich Text Fields for Firefox: by default, Sharepoint does not support Firefox for rich text fields in lists (see below). With little effort, radeditor adds this support.
Installation:
Not too hard. Telerik bundles the radeditor in a SharePoint solution which makes it easy to install and deploy. You can review their general documentation or I've listed below some helpful links:
R.a.d.editor Web Part:
Default content editor WP:
radeditor:
Rich text field support for Firefox:
Sharepoint does not support editing rich text list fields using Firefox. The test is pretty easy. Just create a list and add a Multiple lines of text column with rich text. Then try to add an item using firefox. Results in pictures:
Without radeditor using Firefox:
Without radeditor using IE (what you want Firefox to do too!):
With radeditor using Firefox:
License Agreement:
Under the current licensing agreement, you're allowed to use and deploy the web part as long as you have a paid Microsoft Office SharePoint Server 2007 license (not the free WSS version):
This edition of the SOFTWARE is licensed for use only in conjunction with the Microsoft Office SharePoint Server 2007. You may make an unlimited number of deployments of the SOFTWARE as long as each deployed copy is accessed and used only through the Microsoft Office SharePoint Server 2007. |
|
As I was browsing the Office 2007 downloads, I noticed a very nice (free J) add-on to save office documents as pdf:
http://office.microsoft.com/en-us/downloads/FX101321101033.aspx?pid=CL100570421033
The installation is pretty straight forward.
I was able to save Word, Excel, OneNote, PowerPoint 2007 documents as PDF. I wasn't able to save emails from Outlook 2007 as PDF however.
To convert Word, Excel, OneNote, or PowerPoint 2007 docs to PDF, simply open the document in Office 2007, click on the Office icon (top right corner) -> Save As -> PDF or XPS
|
| There's a very nice registry modification in Outlook 2007 to minimize the program to the System Tray (or "Notification Area" as Vista calls it) instead of sitting in your Taskbar.
Before:
After:
Open Regedit
- Go to: HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Outlook\Preferences
Add The DWORD (32-bit) Value MinToTray and give it the value 1
Your entry should look like this:
That's it! No need to restart or logout; you can just minimize outlook an see it appear in your
|
| On a fresh install of Vista, you will get the following warning every time you try to connect to a Windows 2003 server using Remote Desktop included in Vista (which is Remote Desktop version 6.0.6000.16386):
Remote Desktop cannot verify the identity of the computer you want to connect to.
If you are in a work environment where you trust the Windows 2003 servers you connect to, you can safely remove this warning by adding an entry to your Vista machine's Registry:
Open Regedit
- Go to: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Terminal Server Client
Add The DWORD (32-bit) Value AuthenticationLevelOverride and give it the value 0
Your entry should look like this:
That's it! No need to restart or logout; you can just open a new remote desktop connection to test your changes.
|
| The Problem:
SharePoint 2007 by default stores 48 hours worth of logs in a directory buried in your program files folder (C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\LOGS\ !). Very few events get logged to the application event log.
Expect each log file to be at least 200 megs (a log file being generated every 30 minutes by default), or 19 GB of space at the minimum being used by SharePoint logs.
Solutions:
Go to your central administration server web site, and open up the Diagnostic logging:
Central Administration -> Operations -> Logging and Reporting -> Diagnostic logging
In the Diagnostic logging page, focus on the following categories:
- Event throttling: how much you log
- Trace Log: where you store the logs
Event Throttling:
- For a Dev/staging server server, you should log all or "medium events"
- For a Production server, only log errors
- The search crawler will take up most of the log space
Trace Log:
- By Default, logs are sent to: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\LOGS\
- Store the logs on a separate drive so that at worse your drive gets full and your application stops logging, but still functions. It's a pretty standard practice for SQL server installations for instance.
- Reduce the number of log files. The default is two days worth of logging (96 files x 30 min intervals). See if this is too much for you; it might depend on how much you chose to log in the Event Throttling.
|
|
BTS Administration (IT):
- Consolidated all BTS management into one tool (the Management Console), making the administration of BTS applications a lot easier.
- New deployment wizards allow you to package a BTS application into a single MSI, which you can easily transport to a staging, QA, or production environment… this reduces significantly deployment of BTS apps.
- Bad incoming data (that doesn't comply to your schemas) can be caught and suspended instead of just lost… this allows you to analyze the bad data and work with the sender on what went wrong.
BTS Development:
- Integration with VS 2005 (i.e. .NET 2.0)… BizTalk components are project types that can be integrated with other .NET 2.0 assemblies.
- Integration with .NET 2.0 makes BTS very extensible. If any of the built in calculations does not meet the customer's requirements, .NET 2.0 code can be written to fulfill this requirement.
- New input and output ports such as POP3 and SMTP. You can also build your own custom ports in .NET 2.0.
- New development tools such as the Flat File Schema wizard, or step through debugging.
|
|
A typical development environment in .NET 1.1:
- x number of developers using windows XP, VS 2003, deploying on IIS 5.1 in a virtual directory (i.e http://localhost/MyWebApp).
- Staging and Production servers are Windows 2003, deploying the web app on IIS 6, on the root of some application folder (i.e. http://www.MyWebApp.com/).
The problem is that you're using the same code base for both deployment scenarios so all image, css, js, page references, etc are either based from /MyWebApp or / depending on which environment you deploy to. There are a few ways to get around it by using .NET controls and "~" but it's a little lame for just an image, some scripting at the beginning of each path reference that will decide at runtime the right path, and others…
Now with .NET 2.0…
Using Visual Studio 2005, you can base all of your references off "/" and use the Development Server provided with Visual Studio 2005. Development Server will essentially give you an unlimited number of web sites, very much like IIS 6 would. That's right, no more image server controls, funky path scripting, just one way to reference files for ALL environments. Last but not least, it takes about 2.4 minutes to setup on each developer's box and will save you tons.
Scott Guthrie wrote a nice step by step article on how to set it up (just follow the steps 1–6): http://weblogs.asp.net/scottgu/archive/2005/11/21/431138.aspx.
Note that if you don't see the option to use a custom web server in the web site properties, it means your web project is configured for IIS, not the file system This is common if you converted the project from .NET 1.1. To resolve this you can either create a new web project using the file system instead of IIS, or hack the solution file (I'll post how to do that).
You're welcome ;) |
View in Web Browser /personal/steventap/Blog/_layouts/VisioWebAccess/VisioWebAccess.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 0x0 0x1 FileType vdw 255 Compliance Details javascript:commonShowModalDialog('{SiteUrl}/_layouts/itemexpiration.aspx?ID={ItemId}&List={ListId}', 'center:1;dialogHeight:500px;dialogWidth:500px;resizable:yes;status:no;location:no;menubar:no;help:no', function GotoPageAfterClose(pageid){if(pageid == 'hold') {STSNavigate(unescape(decodeURI('{SiteUrl}'))+'/_layouts/hold.aspx?ID={ItemId}&List={ListId}'); return false;} if(pageid == 'audit') {STSNavigate(unescape(decodeURI('{SiteUrl}'))+'/_layouts/Reporting.aspx?Category=Auditing&backtype=item&ID={ItemId}&List={ListId}'); return false;} if(pageid == 'config') {STSNavigate(unescape(decodeURI('{SiteUrl}'))+'/_layouts/expirationconfig.aspx?ID={ItemId}&List={ListId}'); return false;}}, null); return false; 0x0 0x1 ContentType 0x01 898 Edit in Browser /_layouts/images/icxddoc.gif /personal/steventap/Blog/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 FileType xsn 255 Edit in Browser /_layouts/images/icxddoc.gif /personal/steventap/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 ProgId InfoPath.Document 255 Edit in Browser /_layouts/images/icxddoc.gif /personal/steventap/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 ProgId InfoPath.Document.2 255 Edit in Browser /_layouts/images/icxddoc.gif /personal/steventap/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 ProgId InfoPath.Document.3 255 Edit in Browser /_layouts/images/icxddoc.gif /personal/steventap/Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 ProgId InfoPath.Document.4 255 View in Browser /personal/steventap/Blog/_layouts/xlviewer.aspx?id={ItemUrl}&DefaultItemOpen=1 0x0 0x1 FileType xlsx 255 View in Browser /personal/steventap/Blog/_layouts/xlviewer.aspx?id={ItemUrl}&DefaultItemOpen=1 0x0 0x1 FileType xlsm 255 View in Browser /personal/steventap/Blog/_layouts/xlviewer.aspx?id={ItemUrl}&DefaultItemOpen=1 0x0 0x1 FileType xlsb 255 View in Browser /personal/steventap/Blog/_layouts/xlviewer.aspx?id={ItemUrl}&DefaultItemOpen=1 0x0 0x1 FileType ods 255 Document Set Version History javascript:SP.UI.ModalDialog.ShowPopupDialog('{SiteUrl}/_layouts/DocSetVersions.aspx?List={ListId}&ID={ItemId}') 0x0 0x0 ContentType 0x0120D520 330 Send To other location javascript:GoToPage('{SiteUrl}/_layouts/docsetsend.aspx?List={ListId}&ID={ItemId}') 0x0 0x0 ContentType 0x0120D520 350 |
|
|
|
|