I had a client email me with an interesting dilemma a couple days ago. He was working with a document library and uploading .docx files. He was creating a group of Office 2007 files and Office 2003 files and uploading multiple files at once. He emailed me saying that all the files were uploading but .docx files. Sure enough, they weren’t uploading and no errors were being generated.
He emailed me a screenshot of the upload, and I noticed something strange. The size of the Word document was 0 K. I created my own blank Word document, saved it and uploaded it and it was 10 K. Curious about the difference, I thought he had a corrupted or “bad” Word file. Nope, it open just fine in Word, but was still 0 K.
Come to find out, he was right clicking on his desktop and selecting “New Microsoft Word Document” I was going into Word and saving the open file. The file created by right clicking on the desktop, is a valid Word file, but is missing some key info that was causing the upload to fail.
If you open a .docx file in WinRAR or WinZip, you’ll notice it is actually a collection of folders and XML files. When saving a blank Word file from within Office, there are some default XML files that are created and added, however, when you create the file by right clicking your desktop, none of those XML files are created. If you try to open such a file in WinRAR you get an invalid archive error as opposed to the folder and file structure you usually see within a .docx file.
The lesson, if you’re going to do testing with a blank Word document, create it from within Word and not by right clicking on your desktop.
One of the latest announcements out of Microsoft revolves yet again around SharePoint. However, it also involve Microsoft Commerce Server 2009. The two packages now have integration allowing you to more easily (I’ve gotten in trouble before for just saying easily, so I put the “more” condition in
create an ecommerce site built on SharePoint. You can read more details at CMS Wire. I haven’t tested it yet, but apparently there are several site templates, web parts, and other features that you get only when using the two products together. It works with both MOSS and WSS, however, once again, you loose some functionality with WSS. In fear of being repetitive, I won’t go into details. Just click the link earlier in this post and read all the details there.
This issue has already been posted here along with the fix, but I figured I would pass along the information in case anyone hasn’t seen this. I posted a tweet about it today that drew some attention, so apparently not everyone is aware of this issue.
There is a site template included in the Fabulous 40 site templates from Microsoft that interferes with Project Server 2007. When you install Project Server 2007, it creates a site template that is used for your Project Workspace sites. It includes some integration between your Projects and your SharePoint sites. However, when you deploy the Project Tracking Workspace included with the Fabulous 40, it overwrites the Site Template, so that when you create a new Project Workspace with Project Server, it uses this Fabulous 40 site template instead. As I’m sure you’ve guessed, this site template does NOT include the integration with Project Server.
So, if you plan on using Project Server as well as the Fabulous 40 templates, make sure you turn them into the Fabulous 39 first and leave out the Project Tracking Workspace.
I was working with a client the other day who was having problems with search. They had a SharePoint site that search couldn’t crawl. The first thing to check was obviously permissions and those all worked fine. I started digging into it and found it was the error: “Error HRESULT E_FAIL has been returned from a call to a COM component.”
When looking for a fix I ran across this post in the TechNet forums that gave me the answer. Your web.config file may have identity impersonate=”false”. Sure enough, I looked at the web.config and impersonate=”false”. I changed it to =”true”, performed an iisreset and reran the full crawl. Success!! The downside…it did indeed break a custom feature that was installed in the farm. So now we are on to fixing that problem.
I’m currently running Windows 7 build 7057 on my MBP. I recently update from build 7048. However, I had the same problem in both build, my Broadcom wireless on my MacBook Pro would sporadically stop working. Sometimes it would take a few minutes to fail, sometimes it would take hours. Once it even kept working all night. I was beginning to think I might have to roll back to build 7000. I was wondering about updated driver, but was having problems find them.
Finally I found my answer, why scouring the forums, someone mentioned they used the latest Broadcom Drivers from the HP Site. So, I gave it a shot and download this driver. So far its been working great and I haven’t had an problems with my wireless. Here is a screen shot of the latest drivers and version number. I’ll update this post if I discover any problems.

On another note, it would be great if Apple would keep up with these Windows drivers as well. I know…the MBP is supposed to be fore Mac OS, but there are more and more people running Windows on their Mac’s and boot camp just isn’t being updated regularly enough to have the most recent Windows drivers. Either boot camp needs more regular updates or Apple should provide Windows driver downloads on their site.
Check out The Mossman’s blog for screen shots as well as the download link on Microsoft’s Site. I am planning on downloading and installing them right after I get done writing this. If you want to go right to the download site, you can get the themes here.
Internet Explorer 8 has been released. I’m running Windows 7 right now and haven’t tried installing the Vista download on Windows 7, but you can get the download of it here. IT News also gives a brief review of IE 8 here if you want to read that before rushing out to download and install the latest.
I just saw this article today about the planned use of the latest 787 billion dollar stimulas package. http://seattletimes.nwsource.com/html/microsoft/2008857919_microsoftbridge14.html. I’m not sure what my opinion of it is. Being a SharePoint consultant, Microsoft doing well is important, building this bridge will provide (or maintain) jobs for construction works…but is this the best way to help our economy with the stimulus package? I’m not sure, what do you think?
Have you ever wanted to automatically fill in fields in your InfoPath form with user information from AD? I had to do this recently for an InfoPath form. The easiest way I found to do this was to use the SharePoint web service. The only limitations iare that you need to have your SharePoint and AD User synchronization set up and the AD info you need must be syncronized…not all AD fields are linked in the syncronization by default. This also means this will only work with MOSS (WSS doesn’t have AD syncronization as it is part of Shared Services).
To pull this info, take the following steps:
1. Add the web service: http://[SharePointURL]/_vti_bin/UserProfileService.asmx
2. To get the current user:
using System.DirectoryServices;
string CurrentUser = System.Environment.UserName;
This will get the current SharePoint user, not the user currently logged into the computer.
3. Declare the InfoPath fields so you can write to them later:
XPathNavigator fieldAVPName = MyNavigator.SelectSingleNode("/my:myFields/my:Name", NamespaceManager);
4. Get the properties of the user
sharepoint.UserProfileService MyUsers = new sharepoint.UserProfileService();
MyUsers.Credentials = System.Net.CredentialCache.DefaultCredentials;
sharepoint.PropertyData[] propdata;
propdata = MyUsers.GetUserProfileByName(txtCurrentUser);
int NumProperties = propdata.Length;
string txtFirstName = null;
string txtLastName = null;
string txtName = null;
for (int i = 0; i < NumProperties; i++)
{
if (propdata[i].Name == "FirstName" && propdata[i].Values.Length > 0)
{
txtFirstName = (string)propdata[i].Values[0].Value;
}
else if (propdata[i].Name == "LastName" && propdata[i].Values.Length > 0)
{
txtLastName = (string)propdata[i].Values[0].Value;
}
else { }
}
txtName = txtFirstName + " " + txtLastName;
5. Write the data to InfoPath
fieldName.SetValue(txtName);
You can use this with minor modifications to get other AD Properties of the users.