unofficial ice oasis schedule update

Last year, I put together a web site that generates schedules for the Ice Oasis hockey leagues. This worked well up until a month or so ago. Then this started happening:

Server Error in ‘/’ Application.

Login failed for user ‘iceoas’.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Login failed for user ‘iceoas’.

Source Error:


An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[SqlException: Login failed for user 'iceoas'.]
System.Data.SqlClient.ConnectionPool.CreateConnection() +402
System.Data.SqlClient.ConnectionPool.UserCreateRequest() +147
System.Data.SqlClient.ConnectionPool.GetConnection(Boolean& isInTransaction) +386
System.Data.SqlClient.SqlConnectionPoolManager.GetPooledConnection(SqlConnectionString options, Boolean& isInTransaction) +372
System.Data.SqlClient.SqlConnection.Open() +384
System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState) +44
System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +304
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +77
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +36
Common.Sql.Select_DataSet(String strSql, String strKey) +77
admin.schedule.standings.Page_Load(Object sender, EventArgs e) +331
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Page.ProcessRequestMain() +750


Version Information: Microsoft .NET Framework Version:1.1.4322.2300; ASP.NET Version:1.1.4322.2300

It turns out they moved the schedule to a new site: iceoasisadulthockey.iceroster.com. In fact, they have outsourced their whole scheduling and roster management web site to Las Vegas-based IceRoster.com.

Would the new site eliminate the need for my tool? I held my breath. Sadly, it did not. IceRoster’s site still has most of the problems of the original:

  • No way to show just your team’s schedule
  • No iCal (or text or RSS) output
  • Kinda ugly

They do make an attempt to highlight the next game, but it’s so subtle it’s almost useless.

So, off I went. I had to solve two problems:

  • Parsing the new format
  • Downloading the data

The first problem was mostly a case of rewriting my regular expression for parsing teams. I also special-cased my code so I could still view legacy data, and in case they ever went back to the old format.

The second problem (which I solved first) was actually downloading the data. This was interesting for a few reasons:

  • The SSL certificate was signed by an unknown authority
  • Emulating the login form submission requires all the data the web browser submits, not just the username and password
  • You have to pass the session cookie back to the server to get the schedule page

It involved a bit of reading of the CURL documentation page on the PHP site and some trial and error, but it’s up and running.

Lastly, the new site includes scores for the games, not just results, so I show those, too.

Leave a comment

Your email address will not be published. Required fields are marked *