Sunday, September 21, 2008

This week I will be in Argentina talking about SharePoint

Raona will participate in the Innovation Summit at Buenos Aires, in the San Luis Digital and in the Microsoft SharePoint Day at Córdoba during the next week. We will see a complete SharePoint overview (by me) and 2 demos about PerformancePoint (by Laureano Remedi) and Search Server (by me againJ).

If someone comes to any of these events, feel free to contact me.

Agenda:

  • 23/09/2008: Innovation Summit (Buenos Aires)
  • 26/09/08: San Luis Digital (San Luis)
  • 29/08/08: Microsoft SharePoint Day (Córdoba)

Related links:

Microsoft Innovation Summit

SharePoint Day (San Luis)

SharePoint Day (Córdoba)

Wednesday, August 6, 2008

Have you ever altered a SharePoint Database?

Well, if your answer is affirmative I recommend you this article: http://support.microsoft.com/kb/841057/en-us

Audit data in SharePoint and its impact in DB size

If you are using the SharePoint audit features you need to know which impact have in the size of your DB. A bad audit configuration may cause that the content and SSP database grow permanently.

In the case of a site collection with the audit enabled (http://office.microsoft.com/en-us/sharepointserver/HA100997261033.aspx) you will see the space used by auditing in the table AuditData in the content database. On the other hand, if you are using a BDC application definition and you have defined an entity make sure that in your entity definition sets the audit property properly (http://forums.msdn.microsoft.com/en-US/sharepointbdc/thread/ea208a3b-fd3b-4508-882e-466371c1a53c/).

But if you have enabled auditing for several months is possible that you need to free up space in your disk. In this case the only supported way is through API (very slow solution). For that reason I recommend that review the requirements of your SharePoint solutions and only enable the Sharepoint audit options that are required.

Update: In the Infrastructure Update there is a new stsadm command that allows to trim the logs: stsadm -o trimauditlog –enddate 20080704 –databasename WSSContent123456 (Thanks kezoe)

Thursday, July 10, 2008

UpdateListItems fails with “%20” urls

The web service Lists.asmx has the web method UpdateListItems that allows you to add, edit or delete an item in a list or document library. In the batch xml you need to put the FileRef parameter as the url of the item or folder when you are working with a document library. If your url has blanks the browser will replace it with "%20" and it is not valid for the UpdateListItems. So, you need to put the url with blanks qnd all works.

Thursday, July 3, 2008

SPUtility.SendEmail

I want to make one comment about this method. It cannot be used out of a SharePoint context because inside it uses SPControl.GetContextWeb(HttpContext.CurrentIL. I wanted to use it to send an email from a timer job.

Have you any idea to send an email using the web applications settings for the outgoing mail from a timer job?

Sunday, June 29, 2008

Error “Server is not operational” using MOSS LDAP Membership Provider


If you are using MOSS and want to authenticate to AD through forms, MOSS offers you a custom membership provider to AD (and any other directory service that implements LDAP protocol). There is many articles and posts that talk about it here and here (broken link L).

Recently I have configured it with the following fragment in the web.config:

<membership
defaultProvider="SharePointLdapMembershipProvider">
<providers>
<add
name="SharePointLdapMembershipProvider" type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bCe111e9429c" server="litwareinc"
port="389"
useSSL="false"
userDNAttribute="distinguishedName" userNameAttribute="sAMAccountName" userContainer="CN=Users,DC=litwareinc,DC=com" userObjectClass="person" userFilter="((ObjectCategory=group)(ObjectClass=person))"
scope="Subtree"
otherRequiredUserAttributes="sn,givenname,cn" />
</providers>
</membership>
<roleManager
defaultProvider="SharePointLdapRoleProvider" enabled="true"
cacheRolesInCookie="true" cookieName=".PeopleDCRole">
<providers>
<add
name="SharePointLdapRoleProvider" type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bCe111e9429c" server="litwareinc"
port="389"
useSSL="false"
groupContainer="DC=litwareinc,DC=com" groupNameAttribute="cn" groupMemberAttribute="member" userNameAttribute="sAMAccountName" nAttribute="distinguishedName"
groupFilter="(ObjectClass=group)"
scope="Subtree" />
</providers>
</roleManager>

And get always this stack error:

Event Type: Error
Event Source: Office SharePoint Server
Event Category: Office Server General
Event ID: 7888
Date: 29/06/2008
Time: 3:45:39
User: N/A
Computer: MOSS
Description:
A runtime exception was detected. Details follow.
Message: The server is not operational.

Techinal Details:
System.Runtime.InteropServices.COMException (0x8007203A): The server is not operational.
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_AdsObject()
at System.DirectoryServices.DirectorySearcher.FindAll(Boolean findMoreThanOne)
at System.DirectoryServices.DirectorySearcher.FindOne()
at Microsoft.Office.Server.Security.LDAP.FindOneObject(DirectoryEntry searchRoot, String filter, SearchScope scope, String[] propertiesToLoad, ResultPropertyCollection& entryProperties)
at Microsoft.Office.Server.Security.LdapMembershipProvider.GetUserAttributeBySearchProperty(String searchValue, String searchProperty, String returnAttribute)

I was able to make a LDAP query using LDAP://LITWARE as a connection string. But the provider was not able to connect to the server because it cannot resolve the IP of the LDAP server. If I replace the server="litwareinc" for server="127.0.0.1" (DC IP) or server="litwareinc.com" all works. Finally my web.config looks like this:

<membership
defaultProvider="SharePointLdapMembershipProvider">
<providers>
<add
name="SharePointLdapMembershipProvider" type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bCe111e9429c" server="litwareinc.com"
port="389"
useSSL="false"
userDNAttribute="distinguishedName" userNameAttribute="sAMAccountName" userContainer="CN=Users,DC=litwareinc,DC=com" userObjectClass="person" userFilter="((ObjectCategory=group)(ObjectClass=person))"
scope="Subtree"
otherRequiredUserAttributes="sn,givenname,cn" />
</providers>
</membership>
<roleManager
defaultProvider="SharePointLdapRoleProvider" enabled="true"
cacheRolesInCookie="true" cookieName=".PeopleDCRole">
<providers>
<add
name="SharePointLdapRoleProvider" type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bCe111e9429c" server="litwareinc.com"
port="389"
useSSL="false"
groupContainer="DC=litwareinc,DC=com" groupNameAttribute="cn" groupMemberAttribute="member" userNameAttribute="sAMAccountName" nAttribute="distinguishedName"
groupFilter="(ObjectClass=group)"
scope="Subtree" />
</providers>
</roleManager>


Then, you always need to ensure that the IP of your LDAP server can be resolved.

Note: For the user picker you need to add this line to the PeoplePickerWildcards section to allow the search function:


<PeoplePickerWildcards>
<clear />
<add key="AspNetSqlMembershipProvider" value="%" />
<add key="SharePointLdapMembershipProvider" value="*" />
</PeoplePickerWildcards>


Enjoy it!

Friday, June 6, 2008

SharePoint Day at Barcelona (Spanish)

En Raona estamos preparando el SharePoint Day donde haremos un repaso a la plataforma en general y profundizaremos en algunos aspectos como la búsqueda y la gestión de procesos.

Fechas: 17/06 Barcelona – 24/09 Madrid

Información y registro:

http://www.raona.com/Formacio/Seminaris/Seminarios2008/MicrosoftSharepointDay/tabid/304/Default.aspx

¿Nos vemos?

 
Online Visitors