Posted by . (15 comments)

After installing April 2012 CU on my Search Server 2010 Express, the “Incoming E-Mail” feature stopped working.

Problem

E-Mails still land in the drop folder but don’t get picked up by the “Microsoft SharePoint Foundation Incoming E-Mail” timer job. (The default folder is “c:\inetpub\mailroot\drop” if you want to have a look.)

The document libraries / lists will not receive e-mails.

In the ULS log you will start seeing entries like this:

05/01/2012 13:17:12.71 OWSTIMER.EXE (0x14B78) 0x113C4 SharePoint Foundation Monitoring nasq Medium Entering monitored scope (Timer Job job-email-delivery) 0a9e5349-84ef-4669-9bba-2a3c9bd12a0a
05/01/2012 13:17:12.83 OWSTIMER.EXE (0x14B78) 0x113C4 SharePoint Foundation E-Mail 0000 High E-mail cannot be delivered because site is over quota or locked for editing. Site URL: http://sharepoint.christian-heindel.de. 0a9e5349-84ef-4669-9bba-2a3c9bd12a0a
05/01/2012 13:17:12.83 OWSTIMER.EXE (0x14B78) 0x113C4 SharePoint Foundation E-Mail 6871 Information The Incoming E-Mail service has completed a batch. The elapsed time was 00:00:00.1130065. The service processed 1 message(s) in total. Errors occurred processing 1 message(s): Message ID: 0a9e5349-84ef-4669-9bba-2a3c9bd12a0a

This message occurs although no quota limit is set.

Outgoing e-mails still work.

Workaround

Go to “SharePoint Central Admin > Application Management > Configure Quota and Locks“, set a limit via “Limit site storage to a maximum of:” and press “OK”.

No downtime necessary. No data loss. (E-mails will get collected in the drop folder until SharePoint starts picking them up again.)

Further information:

Looks like others are having the same problem: “Incoming Email stuck in Drop folder after SP/Hotfix installation

Read more »

Posted by . (0 comments)

In a presentation  (“Efficient Denial of Service Attacks on Web Application Platforms”, Dec 28th 2011, PDF) at 28th Chaos Communication Congress in Berlin (#28c3) there have been published details on how to perform so called “hash collision attacks” on webservers.

This does not only affect Microsoft technology (ASP.NET), but also Java, Python, Ruby, PHP, v8/node.js, …

Microsoft has already reacted and will release an out-of-band security update today.

For more details see:

Posted by . (2 comments)

Debugging Offline Web applications can be hard, because you have to make sure you really are using the current version of your files. If the manifest file is not changed, the browser will not reload the other files, even if they have been changed.

So a good advice is to create some automated build script that changes a version number in your manifest file.

Also keep in mind that when the manifest file has changed and the browser has updated the files, it won’t use them for the current session. So you may want to ask the user to reload the application. For example like this:

window.applicationCache.addEventListener('updateready', function(e) {
	if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
	  // A changed manifest file has been found and downloaded by
	  // the browser. Swap cache and reload the page to use the new files.
	  window.applicationCache.swapCache();
	  if (confirm('A new version of this site is available. Load it?')) {
		window.location.reload();
	  }
	}
}, false);

Debugging using Google Chrome

You can get deeper insights in the caching behavior of your application by using Google Chrome. It offers two helpful functions:

1. Developer Tools

Learn: How to Access the Developer Tools

If the Console is activated (Control-Shift-J or ⌥⌘J), you can see details of the caching mechanics that are automatically logged by the browser.

Example:

Files are getting cached...

Files have already been cached...

You can also implement individual logging by hooking up to the events provided by the API. See the the “AppCache events” section in the Beginners Guide to Using the Application Cache on HTML5 Rocks, for example.

2. AppCache-Internals

You get a list with all cached offline applications with information about Size, Creation Time, Last Update Access and Last Access Time when you open the following internal URL:

chrome://appcache-internals/

If you click on “View Entries”, you will get detailed information about each individual file. You can see if a file has been explicitly or implicitly cached and which one is the master document of the application.

Now, if you click on an individual file, you can even control the actual content of the cached file and see which headers had been sent from the server.

Debugging on an iOS device

If you are debugging on an iOS device be sure to follow the instructions from the Safari Web Content Guide, Section “Debugging”. If in Safari, you will have a chance to see errors with your manifest file.

If in Web App mode, to be sure the cache is deleted, you have to clear history, cookies and cache and to reboot the device. Otherwise you might still be loading old versions of your updated files.

In my tests I found the iOS Web App cache the most hardcore cache to use, ever.

See also:

Posted by . (1 comment)

Most of this new HTML5 stuff is still work in progress. And you can feel that sometimes, when you try the implementations in the different browsers.

For example, try to delete the cache of an Offline Web application:

iOS

The only way to be sure it’s deleted is:

  • Open the Safari settings
  • Clear your cache (“Clear history”, “Clear Cookies”, “Clear Cache”)
  • Restart device
See:

Google Chrome

  • Open the following URL: chrome://appcache-internals/
  • Look for your application and click “Remove”

See: Troubleshooting Offline Access Issues for Chrome10+

Mozilla Firefox

  • Go to “Preferences… > Advanced > Network > Offline Storage”
  • Click on “Clear now”

See: Firefox Help “How to clear the cache

You might also want to read: How to host HTML5 Offline Web applications on an IIS web server

Posted by . (4 comments)

Introduction

By providing a manifest file to the browser, you can specify which files should be available for offline usage, which files always have to be fetched form the internet and you can define fallback resources (what to use when the online ressources are not available).

This is not only good for Offline Applications, you can also speed up live websites with this technique. (See “Tip 5: Use cache manifest for live sites, not just offline apps” on HTML5 Rocks)

Short example:

In your HTML file, specify the manifest file: <html manifest="myapplication.appcache">

Sample content of a manifest file:

CACHE MANIFEST
# Revision 1
# These files will be cached for offline usage,
# also if they are not otherwise linked or used by the current document 

CACHE:
index.html
css/default.css
images/logo.png
scripts/main.js

# These resources require online connection and will never be cached
NETWORK:
http://your.sharepoint.server/_vti_bin/ListData.svc
http://api.twitter.com

# profile-placeholder.png will be served in place of all images
# from the Gravatar service
FALLBACK:
http://www.gravatar.com/avatar/
img/profile-placeholder.png

For this technique to work with files hosted on Microsoft Internet Information Services (IIS) you have to teach the old server new tricks.

What to configure in IIS: MIME Type

The manifest file hast to be served with the mime type “text/cache-manifest“, otherwise the browsers will ignore it.

You can add a new mime type to IIS via the UI, command line, configuration files or WMI. (See documentation “Add a MIME Type” on MSDN)

When you’re done, it should look sth. like this:

Screenshot: IIS settings for MIME type Screenshot: IIS settings for MIME type

You will find older examples on the net, where it says, that your manifest file should be called “cache.manifest“. Unfortunately, “.manifest” is already used by Microsoft, so the new recommendation is to use “.appcache“. (see HTML5 tracker, rev. 5812)

What else to configure in IIS: Control expiration of your files

You might want to adjust your settings so you are sure that the browser always gets the current manifest file. Otherwise you have no control over when the Offline Web application will be updated on the client.

You can configure this via UI, command line, configuration file or WMI.
(See documentation “Configure the HTTP Expires Response Header” on MSDN)

By the way: If you are running your web applications on an Apache web server, you might want to have a look at the pre-configured .htaccess file that comes with the HTML5 Mobile Boilerplate.

Want to learn more?

Posted by . (1 comment)

SharePoint has grown up! It will be THE web and application platform for enterprises, regardless if in the cloud or on-premise.

There were not so many new topics, that you would not have heard before. But in almost every talk and with almost every product in the exhibit halls you could see, that what was there, now had a few years time to evolve.

What I liked

  • Meeting great people I already knew and those I didn’t know before.
  • Internationality
  • Cooperation Offers / New Contacts
  • Workflow Shootout (3 competing products, same tasks, different approaches)
  • Active Community (not only on Twitter #EuropeanSP / @EuropeanSP)
  • Very well organized! A big THANK YOU to Helen, Tracy, Declan, the people from the Estrel Convention Center, Michael Greth, the exhibitors and sponsors…
  • My speaker badge! I hope to have another talk at the next conference, not only because it will be in Barcelona… 😉

What I didn’t like

  • session time to short
  • not enough caffeinated beverages

The two speakers I enjoyed the most

If you can, go to one of their talks!

  • Rafal Lukawiecki (Strategy Consultant, Project Botticelli Ltd., @rafaldotnet)
  • Mike Fitzmaurice (Vice President – Product Technology at Nintex, @MikeFitz)

The tweet, that makes the true potential of the conference visible

No tweets during coffee breaks? 😉 #EuropeanSP
@Sw1ma
Martin Swinkels

People were networking so actively, there was simply no time to tweet…

Some of the sessions I’ve attended

Tuesday, 18th October

  • SharePoint 2010 – THE Platform for Business Collaboration, Internet Sites and More (Bjorn Olstad, Microsoft, Norway, Keynote)
  • Drive Adoption and Get Users Excited about SharePoint 2010 (Matt Berg, Senior Product Manager, Microsoft, USA, T6)
  • SharePoint 2010 Upgrade Best Practices (Joel Oleson, Collaboration Solutions Director, USA, T3)
  • What to Avoid to Ensure Workflow Projects Succeed (Mike Fitzmaurice, Nintex, USA, T11)
  • Diving Into the SharePoint 2010 Fluent User Interface (Christian Glessner, Data One GmbH, Germany, T19)
Wednesday, 19th October
  • Office 365 for Developers (Jan Tielens, Microsoft, Belgium, W3)
  • SharePoint 2010 and Virtualisation (Alan Richards, West Hatch High School, UK, W6)
  • SharePoint Workspace 2010 – The Offline Client for SharePoint Server 2010 (Hans Brender, sqtm PSC GmbH, Germany, W12)
  • Designing Governance: How Information Management And Security Must Drive Your Architecture (Dan Holme, AvePoint, USA, W17)
  • SharePoint for the Internet – Automate your Deployment (Samuel Zurcher, Experts Inside, Switzerland, W23)
  • Federated Authentication in SharePoint 2010 (Andre Vala & Raul Ribeiro, Create IT, Portugal, W26)
  • BI in the Cloud: Opportunities, Paths, and the Future (Rafal Lukawiecki, Project Botticelli Ltd., Ireland, Keynote 4)
  • Conference Dinner
Thursday, 20th October
  • Expert Panel Session – Will Public Offerings or Private Cloud Solutions Influence the Adoption of SharePoint as a Web and Application Platform? (Panel Session)
  • Mobile Applications for SharePoint using HTML5 (Christian Heindel, Communardo Software GmbH, Germany, Th12)
  • Recorded a Share Point

Posted by . (0 comments)

Apple has just released iOS 5. The latest version of it’s mobile operating system.

Good news for you, if you use systems like SharePoint or Confluence on an iOS device: the editor will now work!

Safari on iOS now supports the contenteditable attribute, which is what most of the current web based tools use, to offer you client-side rich text editing in the browser.

Want to learn more?

Two other things that now will work are “position:fixed” and “overflow:scroll“.

If you are a registered iOS developer, you might want to watch the WWDC 2011 videos about Rich Text Editing in Safari on iOS (Session 511) and Understanding Layout and Gestures in Safari on iOS and Lion (Session 516).

Posted by . (0 comments)

If you want to create a lean mobile application for SharePoint, you’ll probably want to use the SharePoint 2010 Representational State Transfer (REST) interface, a WCF Data Service that allows you to use construct HTTP requests to query SharePoint list data.  It will minimize your network traffic compared to SOAP requests and it’s easier to understand for your JavaScript gurus. (Documentation on MSDN library)

Problem:

There is a good chance you will get the following error message when you try to access the ListData.svc via REST:

Could not load type 'System.Data.Services.Providers.IDataServiceUpdateProvider' from assembly 'System.Data.Services, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

I ran into this issue with Microsoft SharePoint Foundation 2010, August 2011 CU, Version 14.0.6029.1000.

I can still reproduce the issue with Search Server 2010 Express, April 2012 CU, Version 14.0.4763.1000.

Solution:

Source: WinsmartS

Posted by . (0 comments)

Access to your business information: anytime, anywhere and from any device.

There lies great potential in mobile applications for SharePoint and a big opportunity for you as a developer!

Microsoft has sold more than 125 million SharePoint licenses to over 65,000 customers. And Tim Cook gave us the following number last week: “92% of the Fortune 500 companies are testing or deploying iPad”

You can expect that your customers will ask you about mobile applications if they aren’t already. Be prepared!

Let me just give you an example. Take the original SharePoint desktop and mobile version of a “Task list” on an iPhone:

Compare it to my slightly optimized version:

It is easy to see and sell the advantage to your customers.

But hurry up! At last week’s Microsoft SharePoint Conference in Anaheim, Microsoft said that they have 4 times the UI guys working on “Sharepoint 15” than on SharePoint 2010. I expect great things to come for the next version of “mobile pages” of SharePoint.

My recent talk on this topic:
At this year’s ShareConf in Düsseldorf (7-9 June 2011) I gave you an introduction and overview about mobile applications for SharePoint. (slides from my talk)

Upcoming talks:
Now at the European SharePoint Conference in Berlin (17-20 October 2011) I will show you more in depth how to create mobile web apps for SharePoint. (My talk: Thursday 20th Oct – Th12 12:15pm)

I will show you how to make use of HTML5 to enable access to your SharePoint environment for a broad range of mobile devices. Learn about the pros and cons of developing HTML5 applications instead of native applications. Learn about frameworks, templates and other tools that will help you. Come with your smartphone and you can try examples in a live demo.

If you can’t make it to that talk, don’t worry! You will have a second opportunity at the Collaboration Days in Luzern, Switzerland (29-30 November 2011). (My talk is on Wednesday 30th Nov – Dev Track 1.3)

I’m looking forward to seeing you!
– Christian