October 14, 2011

Microsoft Online Services: Cannot submit forms on Admin pages

Problem:
When trying to work with Microsoft Online Services Administration pages at https://portal.microsoftonline.com/Admin, after submitting forms that contain text fields, you might get error:

Sorry! We can't process your request right now.
The service is temporarily offline for scheduled maintenance or we're investigating a problem. We're working to get it back online as quickly as possible.
Error code: 0.


Such form is, e.g., Service Request.

Solution:
After quite lengthy problem solving session with Microsoft support and bunch of test service requests it turns out that if you have string like <XYZ> in the text fields, submitting the form will not work.

September 14, 2011

Visual Studio Dependency Chart

Having few spare minutes at the airport waiting for the plane AND downloading Windows 8 Developer Preview I thought why not investigate how my Media Center Status Application is actually structured in terms of assembly dependency.

Visual Studio 2010 provides nice way do do that. Just select Architecture –> Generate Dependency Graph and select what kind of graph you wish to generate. Below you see Dependency Chard by Assembly of my application with nice arrows leading from an assembly to another indicating how assemblies are related to each other. You can dig deeper in your assemblies by clicking the small arrows on top right of each assembly.

fbmce_dependency

What I learned of my tool immediately is that I should maybe consider moving Amazon functionality to own assembly. At least that’s how I’ve done with Facebook and Twitter, so it would be more coherent to do the same with Amazon code. However, my idea is to make external web site functionality to function as plugins, and Facebook and Twitter behave the same in that regard (=getting status or updating status to/from these services).

Amazon is used differently, as the application only queries Amazon for additional media details, such as CD or DVD cover art. There are other services that could be used for querying cover art and other information in addition to Amazon, so conclusion is that separating Amazon code into own assembly might be right way to go so possible future plugin developers could add support for other media information services as well.

September 3, 2011

Media Center Status Application 0.6.2 released!

Changes

  • Fixes Facebook login
  • Autumn cleaning - removed lots of unused code making assemblies somewhat smaller

Download

June 23, 2011

SharePoint: Organization browser not showing Manager when Manager is set using PowerShell

Problem:
You are using PowerShell to set value for user’s Manager and you use email address when setting the value of the UserProfile[“Manager”].Value.

Looking at user profile, the Manager property looks correct, it even resolves domain account properly.

userprofile

However, Organization browser is not showing Managers for users.

Solution:
Don’t use e-mail when setting Manager value:

$userProfile["Manager"].Value = $managerEmail

instead use manager’s account name:

$managerProfile = $profileMgr.GetUserProfile($managerEmail)   
$userProfile["Manager"].Value = $managerProfile["AccountName"]

PS. CSV file we use for importing profiles doesn’t contain AD account name, that’s why I’m using email in the first place.

SharePoint: Changing user’s Manager is not reflected to Organization browser

Problem:
You update user’s Manager in User Profile Properties, then you go to My Site and refresh Organization browser but change is not there.

Thoughts:
Running search incremental crawl didn’t help, nor running the various SharePoint jobs.

Solution:
Surprisingly solution was to recycle My Site application pool from IIS, and no other action was required.

June 16, 2011

SharePoint: SPUpgradeSession errors in ULS log every 8 hours

Problem:
SharePoint 2010 ULS logs get bunch of error messages at around 2:00, 10:00 and 18:00. If there are more than one WFE in the farm, you will probably have the error related to every WFE.

Errors look like this:

[powershell] [SPUpgradeSession] [ERROR] [6.6.2011 9:59:01]: CanUpgrade [SPConfigurationDatabase] failed.[powershell] [SPUpgradeSession] [ERROR] [6.6.2011 9:59:01]: Exception: Login failed for user 'AD\WFESERVERNAME$'.
[powershell] [SPUpgradeSession] [ERROR] [6.6.2011 9:59:01]:   
     at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)    
     at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)    
     at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)    
     at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)    
     at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)    
     at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)    
     at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)    
     at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)    
     at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)    
     at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)    
     at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)    
     at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)    
     at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)    
     at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)    
     at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)    
     at System.Data.SqlClient.SqlConnection.Open()    
     at Microsoft.SharePoint.Utilities.SqlSession.OpenConnection()    
     at Microsoft.SharePoint.Utilities.SqlSession.ExecuteReader(SqlCommand command, CommandBehavior behavior, SqlQueryData monitoringData, Boolean retryForDeadLock)    
     at Microsoft.SharePoint.Utilities.SqlSession.ExecuteReader(SqlCommand command, Boolean retryForDeadLock)    
     at Microsoft.SharePoint.Utilities.SqlSession.ExecuteReader(SqlCommand command)    
     at Microsoft.SharePoint.Upgrade.SPDatabaseSequence.GetVersion(SPDatabase database, Guid id, Version defaultVersion, SqlSession session, SPDatabaseSequence sequence)    
     at Microsoft.SharePoint.Upgrade.SPDatabaseWssSequence.get_BuildVersion()    
     at Microsoft.SharePoint.Upgrade.SPSequence.get_CanUpgrade()    
     at Microsoft.SharePoint.Upgrade.SPUpgradeSession.CanUpgrade(Object o)
   

Workaround:
Add 'AD\WFESERVERNAME$‘ (and other WFEs if there are several) to users in SQL, but with no additional permissions (so that they’re in public role).

I will call this a workaround as I haven’t found information that would point this to be best solution mainly in terms of security. Also the actual job/task causing these errors is not yet known.

April 14, 2011

SharePoint: Importing Term Set gives error about the last line of CSV file

Problem:

When importing TermSet using CSV file in SharePoint 2010, you get error:

An error was encountered while attempting to import the term set at line [LINENUMBER] of the submitted file and some data may not have been cleaned up.  Please ensure that this file is a valid csv file and adheres to the correct format as in the sample file ImportTermSet.csv.

Where [LINENUMBER] is the number of the last line in your CSV file.

You have verified that CSV file is indeed valid, and there is definitely nothing wrong with the last line. Also, when removing the last line, the error persists, but contains LINENUMBER-1.

Solution:

Make sure capitalization in the terms imported in your CSV is same for all parent items. You cannot have parent items with different capitalization.

You will get the error if any parent level term capitalization doesn’t match, e.g.,

,,,"True",,"First level term","First second level term",,,,,
,,,"True",,"first level term","Second second level term","Third level term",,,,

will give you the error, while

,,,"True",,"First level term","First second level term",,,,,
,,,"True",,"First level term","Second second level term","Third level term",,,,

works fine.

February 4, 2011

Media Center Status Application version 0.6.2 Release Candidate is out!

Fixes
  • Fixed Twitter login not working

New features
  • Option to clear XML status when there is no active media in Media Center
  • Option to clear XML status Media Center is closed.
  • Additional details of the media available in XML.
Download here

December 3, 2010

MOSS: Setting crawl logging categories to verbose

Copy and paste ready list of in order to set crawl related logging categories to verbose:

Stsadm -o setlogginglevel -category "MS Search Advanced Tracing" -tracelevel verbose
Stsadm -o setlogginglevel -category "IndexerClient" -tracelevel verbose
Stsadm -o setlogginglevel -category "IndexerPlugin" -tracelevel verbose
Stsadm -o setlogginglevel -category "Arpi" -tracelevel verbose
Stsadm -o setlogginglevel -category "GatherStatus" -tracelevel verbose
Stsadm -o setlogginglevel -category "GatherSvc" -tracelevel verbose
Stsadm -o setlogginglevel -category "GatherDirMon" -tracelevel verbose
Stsadm -o setlogginglevel -category "GatherDirMonQ" -tracelevel verbose
Stsadm -o setlogginglevel -category "GathererLin" -tracelevel verbose
Stsadm -o setlogginglevel -category "GathererSql" -tracelevel verbose
Stsadm -o setlogginglevel -category "ScopesCompilation" -tracelevel verbose
Stsadm -o setlogginglevel -category "ScopesPlugin" -tracelevel verbose
Stsadm -o setlogginglevel -category "SimplePI" -tracelevel verbose
Stsadm -o setlogginglevel -category "Common" -tracelevel verbose
Stsadm -o setlogginglevel -category "RichErrorReporting" -tracelevel verbose
Stsadm -o setlogginglevel -category "PHFile" -tracelevel verbose
Stsadm -o setlogginglevel -category "PHSts" -tracelevel verbose
Stsadm -o setlogginglevel -category "PHHttp" -tracelevel verbose
Stsadm -o setlogginglevel -category "FeatureExtractorPlugin" -tracelevel verbose
Stsadm -o setlogginglevel -category "FilterDaemon" -tracelevel verbose
Stsadm -o setlogginglevel -category "FTEAdmin" -tracelevel verbose
Stsadm -o setlogginglevel -category "FTEAdmin" -tracelevel verbose
Stsadm -o setlogginglevel -category "EventLog" -tracelevel verbose
Stsadm -o setlogginglevel -category "Exceptions" -tracelevel verbose
Stsadm -o setlogginglevel -category "IDXPIEventLog" -tracelevel verbose
Stsadm -o setlogginglevel -category "IDXPIFTECursor" -tracelevel verbose
Stsadm -o setlogginglevel -category "IDXPIPerfCntr" -tracelevel verbose
Stsadm -o setlogginglevel -category "IDXPIPlugin" -tracelevel verbose
Stsadm -o setlogginglevel -category "MS Search Indexing" -tracelevel verbose
Stsadm -o setlogginglevel -category "MS Search Propagation" -tracelevel verbose

Revert to default logging level:

Stsadm -o setlogginglevel -default

November 6, 2010

Media Center Status Application version 0.6.1.1 is out!

New version of 0.6.1.1 was uploaded including proper fixes. If you installed 0.6.1.1 before Nov 8th 2010, please download again and reinstall. Sorry about that!

Fixes

  • Displaying Twitter friends’ status updates in Media Center now work
  • Removed "Status" update methond from Facebook as it no longer exists in Facebook

Download here