Over the past several days I have been assisting one of my colleagues with troubleshooting a Web Interface for SharePoint (WISP) 2007 “Unknown Error” issue.

The problem we initially had was that the error as stated was… Unknown!

Installing, deploying and activating the WISP Solutions and Features was successful. Its when you try to access any of the Citrix Administration links in Central Administration was where we had problems.

So we had to figure out a way to reveal the true error. After trawling through the Citrix Forums for several hours we came across a post which described the steps to turn on error reporting. Once we were able to see the true error, fixing the issue was easy.

Here are the steps we took to turn on error reporting in SharePoint 2007:

Locate the web.config file for the web application associated with your site.

If this is the default web application, this will be at:
C:\Inetpub\wwwroot\wss\VirtualDirectories\80\web.config

If this is for the Central Administration site then the location will be:
C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS

Open web.config and make the following changes:

1. Locate the <customErrors> tag and change it to:
<customErrors mode=”Off” />

2. Set callstack=”true” as shown below:

<configuration>
<SharePoint>
<SafeMode MaxControls=”200″ CallStack=”true” DirectFileDependencies=”10″ TotalFileDependencies=”50″ AllowPageLevelTrace=”false”>
</SafeMode>
</SharePoint>
</configuration>

This will cause the actual error to be displayed, for example:

The expression prefix 'WISP' was not recognized. Please correct the prefix or register the prefix in the <span class="code-tag">&lt;expressionBuilders&gt;</span> section of configuration. at System.Web.Compilation.ExpressionBuilder.GetExpressionBuilder(String expressionPrefix, VirtualPath virtualPath, IDesignerHost host)
at System.Web.UI.ControlBuilder.AddBoundProperty(String filter, String name, String expressionPrefix, String expression, ExpressionBuilder expressionBuilder, Object parsedExpressionData, Boolean generated, String fieldName, String formatString, Boolean twoWayBound)
at System.Web.UI.ControlBuilder.PreprocessAttribute(String filter, String attribname, String attribvalue, Boolean mainDirectiveMode)
at System.Web.UI.ControlBuilder.PreprocessAttributes(ParsedAttributeCollection attribs)
at System.Web.UI.ControlBuilder.Init(TemplateParser parser, ControlBuilder parentBuilder, Type type, String tagName, String id, IDictionary attribs)
at System.Web.UI.ControlBuilder.CreateChildBuilder(String filter, String tagName, IDictionary attribs, TemplateParser parser, ControlBuilder parentBuilder, String id, Int32 line, VirtualPath virtualPath, Type&amp; childType, Boolean defaultProperty)
at System.Web.UI.TemplateParser.ProcessBeginTag(Match match, String inputText)
at System.Web.UI.TemplateParser.ParseStringInternal(String text, Encoding fileEncoding)

David
Twitter – http://twitter.com/citrixreadiness
Citrix Support on Facebook – http://www.facebook.com/citrixsupport