Monday, May 21, 2007
SharePoint V3: MOSS 2007 People Search Scope, 0 Items
MOSS 2007 Search is configured but the People scope contains zero items.
Solution:
* SSP Admin > User Profiles and Properties
Verify that user profiles have been imported by looking at the number of profiles
* SSP Admin > Search Settings > Scopes > Scope Properties and Rules
Delete existing rules
Create a new rule where contentclass = urn:content-class:SPSPeople
Set the new rule behavior to "Require"
* SSP Admin > Search Settings > Scopes
Start Update Now
Monday, April 30, 2007
SharePoint V3 Error: The search request was unable to connect to the Search Service
After modifying SharePoint service account identities, searching results in the error: "The search request was unable to connect to the Search Service."
* IIS Manager > Application Pools > App Pool Properties > Identity Tab:
Set the user name and password to the SharePoint Service Account identity
* Start > Run > IISRESET /noforce
Wednesday, April 25, 2007
SharePoint V3: A MOSS 2007 Extranet Scenario of an Internal Parent Site Having Multiple Extranet Sub-Sites
One common extranet configuration of MOSS 2007 is when an organization sets up an internal-only site collection but has multiple external facing sub-sites (perhaps for clients or projects). I have created a sample configuration for this design using a fictitious company called “Wharf Technologies.” This example assumes the following:
* There is one set of internal users (e.g. Wharf employees)
* There are multiple sets of external users (e.g. clients)
* Users and groups are managed in Active Directory
* There is one root site collection called “Wharf Technologies Portal”
* There are many client sub-sites, one per client
* Wharf employees are supposed to have access to the Wharf Technologies Portal, plus all of the client sub-sites
* Wharf clients are not supposed to have access to the Wharf Technologies Portal; they should only have access to their client site
* For demonstration purposes, one of the client organizations is called Awesome Computers
* The Site Collection Administrators and Portal Owners have already been provisioned on the Wharf Technologies Portal
* The URL for the Wharf Technologies Portal is http://portal.wharf.com
* The Awesome Computers sub-site has already been created, the URL is http://portal.wharf.com/sites/awesomecomputers
* Each client site should have its own URL, available outsidse the Wharf network
Setting up something like this requires several network and SharePoint configurations. Below are steps outlining one approach to achieving these configurations in a sample environment. Keep in mind that there are many different approaches achieving the requirements and this is just one example. In real life you need to consider information security and corporate compliance policies and procedures of both the company hosting the web site and the client companies.
From Active Directory Users and Computers:
Create an AD security group called Wharf Technologies Users
Create an AD security group called Awesome Computers Users
From the Wharf Technologies Portal Site:
Actions > Site Settings > Modify All Site Settings > Advanced Permissions > New > Add Users
Add the Wharf Technologies Users AD group
Give Permissions Directly (Contribute)
Uncheck the option to send welcome e-mail to the new users
Click OK
From the Awesome Computers Sub-Site:
Site Actions > Site Settings > Advanced Permissions > Actions > Edit Permissions
Click OK to the warning message regarding unique permissions
New > Add Users
Add the Awesome Computers Users AD groupGive Permissions Directly (Contribute)
Uncheck the option to send welcome e-mail to the new users
Click OK
At this point the Awesome Computers have access to their site, but not the root site collection.
From Internet Information Services Manager:
Create a new web site called Awesome Computers
On the Web Site tab, provide a host header, awesomecomputers
On the web site tab, set the “content for this resource should come from:” option to “A redirection to URL”
For the “client will be sent to” option, check off “the exact URL entered above”
Set the “redirect to:” field to http://portal.wharf.com/sites/awesomecomputers/default.aspx
From Active Directory DNS:
Create an alias record mapping awesomecomputers host name to the host name of the Wharf Technologies Portal (e.g. portal.wharf.com)
From Internet Explorer:
Test the redirection web site, awesomecomputers.wharf.com should resolve to the Awesome Computers sub-site
From SharePoint:
If any custom branding has been applied, ensure that NT Authenticated Users group or a similar group has permission to the master page and css files. This will ensure that the branding is visible to the client users.
At this point users should be able to point their browser to http://awesomecomputers.wharf.com and be redirected directly to the Awesome Computers sub-site of the Wharf Technologies Portal.
The next configuration is to establish public facing access to the Wharf Technologies Portal ip address, port number, and establish external name resolution to the Awesome Computers host name. The configuration requirements of public ip address and name depend on the network hardware that is being used on the network perimeter and therefore vary from organization to organization. External DNS Name propagation make take several hours to complete since it must be updated at the service provider.
The end result is that each client site that is configured is accessible from outside the network, each having their own unique URL, and SharePoint permissions is set up such that client users can only access their own sites.
Monday, April 16, 2007
SharePoint V3: Configure BDC Search Scope, Add Search Tab, Modify Search Scopes Drop Down
The instructions below explain how to create a custom search scope for the Adventure Works DW SQL Database, how to add an Adventure Works search tab, and how to add Adventure Works to the search scopes drop down. This example assumes that the Adventure Works database has already been defined in the Business Data Catalog.
Create and Configure the Adventure Works Search Scope
SSP > Search Settings > Scopes > View Scopes > New ScopeTitle: Adventure WorksTarget Results Page: Use the Default Search Results Page (for now)Click OK
Adventure Works Search Scope > Edit Properties and Rules > Rules > New RuleScope Rule Type: Content SourceContent Source: AdventureWorksDWBehavior: IncludeClick OK
Create Adventure Works Search and Search Results Pages
Navigate to the Search Center
Site Actions > View All Site Content > Pages > New > Page
Title: aw.aspx
URL: Pages/aw.aspx
Page Layout: Search Page
Click Create
Site Actions > View All Site Content > Pages > New > Page
Title: awresults.aspx
URL: Pages/aw.aspx
Page Layout: Search Results Page
Click Create
Configure the Adventure Works Search and Search Results Pages
Open the aw.aspx pageSite Actions > Edit PageSearch Box Web Part > Edit > Modify Shared Web Part > Miscellaneous
Target Search Results Page URL: awresults.aspx
Click OK
Open the awresults.aspx page
Site Actions > Edit PageSearch Core Results Web Part > Edit > Modify Shared Web Part > Miscellaneous
Scope: Adventure Works
Create and Configure the Adventure Works Search Tabs
Open the search.aspx page
Site Actions > Edit Page > Tabs > Add New Page
Tab Name: Adventure Works
Page: aw.aspx
Open the searchresults.aspx
Site Actions > Edit Page > Tabs > Add New Page
Tab Name: Adventure Works
Page: awresults.aspx
Update the advanced search links on each custom search page
Modify the Search Scopes Drop Down
Home > Site Actions > Site Settings > Modify All Site Settings > Site Collection Administration > Search Scopes
Click "Display Group: Search Dropdown"
Edit Scope Display Group
Enable the Adventure Works scope by checking it and assigning it an order number
Friday, April 06, 2007
SharePoint V3: How the Site Directory Works
Under Promise and Over Deliver
Its great to experience the hype and the excitement of a new project, however, when a project is set in motion a reality check can quickly screech the record player...a message that there are technical limitations preventing a particular goal to be achieved as it was initially designed.
A big part of being satisfied at the completion of a project, is having accurate expectations when the solution design is established. This means being educated about the limitations and obstacles you will face along the way, before you even begin constructing. It also means being cautious about making promises.
Tuesday, April 03, 2007
SharePoint V2: ERROR: CREATE DATABASE permission denied in database 'master'. (Error code: 262).
From SharePoint Central Administration, attempting to create a new configuration database results in an error: "Error CREATE DATABASE permission denied in database 'master'. (Error code: 262)."
Solution:
* Start > Programs > Administrative Tools > IIS Manager > SharePoint Central Administration Web Site Properties > Home Directory Tab: Note the Application Pool Name (e.g. StsAdminAppPool).
* Start > Programs > Administrative Tools > IIS Manager > StsAdminAppPool Properties > Identity Tab: Set the user name and password to be the same as the database service account.
* Start > Run > IISRESET
Monday, April 02, 2007
SharePoint V3: Enabling PDF File Type in Office SharePoint Server 2007
* Download Adobe PDF IFilter located at:
http://www.adobe.com/support/downloads/detail.jsp?ftpID=2611
* Stop the IIS Admin service.
* Start > Settings > Control Panel > Add Remove Programs: Deinstall previous versions of Adobe PDF IFilter.
* Run the PDF IFilter install executable (e.g. ifilter60.exe). The default install directory is:
C:\Program Files\Adobe\
* Download the 17X17 PDF icon as PDFICON_SMALL.GIF, located at:
http://www.adobe.com/misc/linking.html
* Copy the gif file to:
Program Files\Common Files\microsoft Shared\Web Server Extensions\12\Template\Images
* Backup the DOCICON.XML file, located in:
Program Files\Common Files\microsoft Shared\Web Server Extensions\12\Template\XML
* Edit DOCICON.XML, adding a Mapping key for PDF (e.g. mapping value=" PDFICON_SMALL.GIF" key="PDF")
* Start > Run > IISRESET
* Shared Services Administration: SSP > Search Settings > File Types: Add PDF
* Shared Services Administration: SSP > Search Settings > Content Sources: Start a Full Crawl
For information on 64 bit, refer to Mauro's blog post:
http://blogs.officezealot.com/mauro/archive/2007/05/15/20352.aspx
Friday, March 30, 2007
Visual Studio 2005: Display Line Numbers Globally
Visual Studio 2005: Error: Setup Failed
Error:
Setup Failed
Solution:
The failed setup issue was caused by latency on the network. The setup files were located on a remote, mapped network drive.
To sucessfully install Visual Studio, perform the following steps:
* Clear the temp folder.
* Start > Run > %Temp% > Delete files.
* Copy the setup files locally.
* Run setup.exe.
Thursday, March 29, 2007
SharePoint V2: Error: HTTP 404: File Not Found Internet Explorer
Errors:
* Service Unavailable
* HTTP 404: File Not Found Internet Explorer.
After installing Macromedia RoboHelp to a SharePoint Portal Server 2003 web server, the existing SharePoint portals were returning the "Service Unavailable" error. RoboHelp was deinstalled from the server. Now, attempts to hit the SharePoint portals from Internet Explorer were behaving oddly. Using the FQDN (e.g. http://portalname.domain.com) in the URL was resulting in a 404 error. However, it was possible to hit the portal sites using the IP address and manually typing default.aspx (e.g. http://192.168.1.10/default.aspx).
Solution:
* Backup IIS Metabase:
IIS Manager > Right Click the IIS Server Node > All Tasks > Backup/Restore Configuration > Create Backup
* Compare Metabase Configurations:
C:\Windows\System32\inetsrv\history > Locate the current metabase xml file and the most recent, valid one prior to the faulty installation attempt.
In this particular case we used an xml compare tool and identified that the current IIS Metabase had been corrupted by the faulty Robohelp installation. We found that the web services section of the current IIS Metabase was missing these entries below, preventing SharePoint from processing the HTTP requests.
* 1,C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\isapi\owssvr.dll,0,Windows SharePoint Services,Windows SharePoint Services
* 1,C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\isapi\shtml.dll,0,Windows SharePoint Services,Windows SharePoint Services
* 1,C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\isapi\_vti_adm\admin.dll,0,Windows SharePoint Services,Windows SharePoint Services
* 1,C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\isapi\_vti_aut\author.dll,0,Windows SharePoint Services,Windows SharePoint Services
* Restore a Valid Metabase Configuration:
IIS Manager > Right Click the IIS Server Node > All Tasks > Backup/Restore Configuration > Highlight valid backup prior to faulty installation > Restore
* Validate:
After restoring a valid IIS Metabase backup, the SharePoint portals were functioning properly. They became accessible both through FQDN or IP Address.
Notes:
* It is not recommended to use this solution every time an IE 404 error is encountered. There are several possible causes for the IE 404 error. This example is one scenario where an IE 404 error was encountered and IIS Metabase restore happened to be the solution. It is recommended to fully investigate an issue and taking proper precautions before applying this solution.
* It is a good idea to take IIS Metabase backups prior to installing software to a web server that would alter the IIS configuration. Having the IIS Metabase backup handy provides an extra safety net in the event that a configuration needs to be rolled back.
Wednesday, March 21, 2007
SharePoint V3: Configuring Custom NewForm.aspx, EditForm.aspx, DispForm.aspx
In SharePoint deployments, it is fairly common to have a requirement to override these pages with custom pages. You would want to do this when you want to hide fields from a user, or when you want to enhance the appearance of the page for the user.
One example of where I needed to do this is on a custom list where I had configured a SharePoint Designer workflow. The workflow was fairly complex and I had configured some extra fields on the custom list to facilitate the workflow. I didn't want the users to see these extra fields when they were creating, editing, or viewing items in the list so I had to hide these fields.
Here are the steps to configuring custom NewForm.aspx on an existing custom list. These steps may also be used to configure custom EditForm.aspx or DispForm.aspx.
* SharePoint Designer > File > Open Site
* Expand the lists folder
* Expand the custom list that you are modifying
* Double click NewForm.aspx to open it
* File > Save As
* Name the custom list something unique (do not overwrite the default NewForm.aspx) e.g.
* NewFormCustom.aspx
* You will see a generic SharePoint control in the center of the page with column 1, column 2, column 3
* Right click the SharePoint control that is in the center of the NewFormCustom.aspx page, Cut to remove it from the pageInsert > SharePoint Controls > Custom List Form
* Right click within the Custom List Form SharePoint control to invoke the menu.
* Modify the Custom List Form SharePoint control.
* File, Save
* Right click the custom list container > Properties
* List Properties > Supporting Files Tab > Configure this tab accordingly, pointing NewItemForm to NewFormCustom.aspx
* Apply, OK
* File, Save
If you need the revert back to the original NewForm.aspx, you can open the list properties from SharePoint Designer, navigate to the Supporting Files tab, and point the NewItemForm property back to NewForm.aspx. Furthermore, if the requirements change, the original NewForm.aspx is still in tact and you have the option to create additional, custom NewForm.aspx pages.
Words of caution about working with the NewForm.aspx, EditForm.aspx, and DispForm.aspx:
* Always create a web part template of the custom list or document library as a backup, before making changes
* If the custom list or document library has workflow, take the additional step of creating a site template or backup the site collection entirely using stsadm
* Never rename the default NewForm.aspx, EditForm.aspx, or DispForm.aspx pages. This will corrupt the custom list. When you click on Edit Item you will receive an error, "Invalid URL." Instead use the steps above.
* After switching to the custom form, attachments are no longer supported on the custom list. If you try to add an attachment you will get an error, "This form was customized not working with attachment."
UPDATE:
Microsoft published a knowledge base article addressing the attachment issue:
Microsoft KB 953271:
Error message when you try to attach a file in a custom form on the Web site in Windows SharePoint Services 3.0: “This form was customized not working with attachment"
http://support.microsoft.com/kb/953271
Tuesday, March 20, 2007
Links: SharePoint V3: High Availability
Database Mirroring in SQL Server 2005
Example: Setting Up Database Mirroring Using Windows Authentication (Transact-SQL)
Database Mirroring Transport Security
Asynchronous Database Mirroring (High-Performance Mode)
Automatic Failover
Alerting on Database Mirroring Events
Friday, March 16, 2007
SQL Server: Query Server Name, Edition, Product Level, Product Version
SELECT
SERVERPROPERTY('SERVERNAME') AS 'Server Name',
SERVERPROPERTY('EDITION') AS 'Edition',
SERVERPROPERTY('PRODUCTLEVEL') AS 'Product Level',
SERVERPROPERTY('PRODUCTVERSION') AS 'Product Version'
Refer to Microsoft KB 321185 titled, "How to identify your SQL Server version and edition" to identify which service pack corresponds with the product version number.
SharePoint V3: Subtle Behaviors with Custom Site Tab and Site Column Groups
A similar behavior exists within the Site Column. From the home page if you navigate to Site Actions > Site Settings > Modify All Site Settings > Site Column Gallery. MOSS 2007 allows you to create new site columns groups when you create new site columns. You may also add a new site column to an existing group. The subtle behavior here is that if you move all of the site columns out of one particular site column group, then that group name will disappear. You need at least one site column to be added to the site column group in order for the group name to exist.
Wednesday, March 14, 2007
SharePoint V3: Master Page Not Inherited By Non-Publishing Sites
We encountered an issue where we had deployed a custom master page but not all of the sites in the site collection were recognizing the changes.
First, a little background on what we had done:
We opened the home page (a publishing site) of a SharePoint V3 site collection in SharePoint Designer. Next we copied the default.master and renamed the copy to custom.master. In custom.master we changed the logo in the header of the page to a custom image. Next, we opened the site collection in Internet Explorer and in Site Settings > Look and Feel > Master Page changed the Site Master page to custom.master. We clicked OK to save changes and reviewed the top level site. The header logo was updated. Next we reviewed another top level site, but these sites did not have the new header logo.
Solution
Site Settings > Look and Feel > Master PageSite Master Page:
* Select Specify a master page to be used by this site and all sites that inherit from it.
* Select custom.master from the drop down selection.
* Check off Reset all subsites to inherit this Site Master Page Setting
Site Settings > Look and Feel > System Master PageSite Master Page:
* Select Specify a master page to be used by this site and all sites that inherit from it.
* Select custom.master from the drop down selection.
* Check off Reset all subsites to inherit this Site Master Page Setting
The way this works is that the "Master Page" setting is used by publishing sites. The "System Master Page" is used by non-publishing sites. The terminology used in SharePoint V3 and SharePoint Designer are not intuitive, although the descriptions on the Site Settings > Look and Feel > Master Page do help a bit.
Thanks Marc Anderson for taking the time to read the small print and explain this out loud.
For further explanation, refer to Kathy's blog post, SharePoint Designer Snippets: Working with Master Pages, which helps clarify any confusion regarding this topic.
To expand on this blog post, I think of the Site Settings > Look and Feel > Master Page like this:
* Master Page = Custom Master Page = Publishing Sites
* System Master Page = Default Master Page = Non-Publishing Sites
SharePoint Designer Workflow: It's Just a Facilitator
SharePoint Designer workflow in general is best used as a facilitator of actions that make up a business process and it does not work well for automating or enforcing an entire, complex, human process. What I mean is that SharePoint Designer workflow is best used to automate certain actions that occur within a business process like assign a status of something, or email something, or copy something but its not going to replace human decision making and its not going to perform the entire business process for you.
Say, for example, that Company ABC's IT team is supporting 100 employees through email exchanges. When an employee has an issue, they email an IT distribution list then the IT staff responds to the issue. The IT team is finding that they are struggling to keep track of the support requests. They are considering using SharePoint to track support requests.
A solution to this business problem may be to use SharePoint to structure the metadata about support requests and use workflow to automate actions that occur during the process. Create a SharePoint custom list to track support requests with request id, requestor email, status, title, description, solution fields, and then use SharePoint Designer workflow to perform the following:
* Automatically generate request id for new support requests
* Automatically build and send email the requestor when status of items is changed
SharePoint Designer should not be used to implement rigid rules that contain deep branchings for how the support requests are resolved. You do not want to attempt to create a workflow that predicts and solves the support requests that you are tracking within SharePoint. Thining through and resolving support requests is a complex human process and it scales beyond practical limits of SharePoint Designer workflow.
Workflow can certainly improve processes, and it can simplify tasks that a person performs during a business process, such as the example above....just don't expect workflow to do somebody's job for them.
Friday, March 02, 2007
SharePoint V3: Error: Excel Services: Access Denied
Error: "Access Denied. You do not have permissions to open this file on Excel Services. Make sure that the file is in an Excel Services trusted location and that you have access to the file."
The Excel Services is properly enabled and Excel Services trusted file locations have been properly configured in SharePoint Central Admin. Your user account has access to the Office SharePoint Server 2007 document library that you are trying to publish an Excel workbook to, however, you receive an Access Denied error when attempting to publish an Excel 12 workbook to the document library.
Solution:
Open the Shared Services Admin Site
Central Admin > Application Management > Create or Configure this Farm's Shared Services > SSP > Open Shared Services Admin Site
Set the Unattended Service Account
Shared Services Admin > Excel Services Settings > Edit Excel Services Settings > External Data > Unattended Service Account
Thursday, March 01, 2007
SharePoint Intranets, Evolving Beyond Department Sites
I think a trend for SharePoint intranet deployments is that they will include designs which are less influenced by content categorization and taxonomy and more influenced by functionality.
When you think of various SharePoint intranets that are being used in businesses today, you might struggle to draw a correlation between the user interface and the functionality. I think that has a lot to do with the fact that implementers are responsible for coming up with a design, a context. I think a common habit among implementers has been to design the applications around organizational structure of the company. When SharePoint sites first started popping up, they weren't much more than web folders for documents, and their main "purpose" was sharing documents as an alternative to a file share. So, the user interface design took on a shape similar to how documents are categorized in a folder share. I think that categorizing documents by department resulted in a trend of SharePoint portals that have a department based design.
I think a challenge now is to recognize where SharePoint came from, that department site designs are out of date, and applications built on it are no longer just HTTP enabled versions of Windows Explorer. We are now dealing with real business applications with real (and custom) purpose. User interfaces need to evolve accordingly.
If you've spent a significant amount of time performing a job function as a SharePoint portal user, in an environment that is organized by department you may have come to the realization like I have that organizing collaborative or actionable content and information according to department doesn't make a lot of sense all the time.
One way to evaluate this is to think about the audience (I mean audience in the general sense) the sites's information is addressed to and what the audience is supposed do with the information. You might find that when the audience doesn't have to "do" anything with the information other than consume it then it might work well in a department site. For example, an announcement is posted to an HR department web site that there is a new employee handbook. The audience simply consumes this information. They are not expected to collaborate and edit the handbook. In this example the department site probably works ok.
Its really when you start getting into information that you are working with when department sites start to fall apart. Collaboration using list items, documents, forms, and workflow occurs around a subject, not around a department. So why try to categorize the information you use to collaborate on, into a department? A SharePoint user who is performing a function doesn't care "who" owns the content any more then they care when it was created. It would make more sense to me if the user interface design promoted what users are actually doing in the system as opposed to who owns the subject matter that the user is working with.
Effective Security Model for SharePoint
Much like the user interface of SharePoint is an open canvas, the security model offers lots of room for creativity, though the efforts are mostly transparent to the end users. When designing a security model, I like to thing about things like what size is the user base, what is the organizational structure of the company, how do the business units interact with each other, what are the security policies in the company, how strict must the security on the content be, is the IT staff willing to accept the responsibilities, etc..
As a rule of thumb (with exceptions of course), I don't create SharePoint users, instead I create SharePoint groups and corresponding AD groups. I like to manage the memberships exclusively in AD. Another thing I try to avoid doing is creating roles based solely on org charts. If an organization is collaborative enough that they are implementing SharePoint, then chances people are interacting outside of their immediate department anyways. Most workspaces and content are custom and besides; departments change and reorganizations happen.
There is a significant effort that goes with keeping the security model in good shape. Limit SharePoint security to roles based groups, keep all of the group membership management in AD, and have a consistent organized pattern and naming convention. When that is all set, spend a some time developing the following two reports:
- A report that shows Sharepoint Site, SharePoint group names, access levels
- A report that shows AD groups, member names, and email addresses, nested groups and their members
Events / Conferences / User Groups
- AIIM Conference
- Boston Area SharePoint User Group
- Boston Azure User Group
- Collaborate
- DevConnections
- DevIntersection
- Enterprise Search Summit
- Microsoft Build
- Microsoft SharePoint Conference
- Microsoft TechEd
- New England ASP.NET Professionals User Group
- New England Oracle Applications User Group
- Oracle Applications User Group (OAUG)
- Oracle OpenWorld
- PeopleSoft Government Contractor Special Interest Group
- PeopleSoft Southern New England Users Group
- Quest International Users Group
- SharePoint Saturday
- SPTechCon
- SQL PASS
- SQL Saturday
- Startup Weekend
