Mono and Firebird : IOControl Not Implemented

mp-mono-logo This is a repost from a question I asked on stackoverflow.com that I finally manage by myself…

The issue

I’m actually working on a project where I need to host a .NET webservice on a linux server hosting a firebird database. When I try to run the sample code from http://www.mono-project.com/Firebird_Interbase and call the method, my webservice return me :

System.NotImplementedException: The requested feature is not implemented.
  at System.Net.Sockets.Socket.IOControl (IOControlCode ioControlCode, System.Byte[] optionInValue, System.Byte[] optionOutValue) [0x00000] in <filename unknown>:0
  at FirebirdSql.Data.Common.Extensions.SetKeepAlive (System.Net.Sockets.Socket socket, UInt64 time, UInt64 interval) [0x00000] in <filename unknown>:0
  at FirebirdSql.Data.Client.Managed.Version10.GdsConnection.Connect () [0x00000] in <filename unknown>:0
  at FirebirdSql.Data.FirebirdClient.ClientFactory.CreateManagedDatabase (FirebirdSql.Data.FirebirdClient.FbConnectionString options) [0x00000] in <filename unknown>:0
  at FirebirdSql.Data.FirebirdClient.ClientFactory.CreateDatabase (FirebirdSql.Data.FirebirdClient.FbConnectionString options) [0x00000] in <filename unknown>:0
  at FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect () [0x00000] in <filename unknown>:0
  at (wrapper remoting-invoke-with-check) FirebirdSql.Data.FirebirdClient.FbConnectionInternal:Connect ()
  at FirebirdSql.Data.FirebirdClient.FbConnectionPool.Create () [0x00000] in <filename unknown>:0
  at FirebirdSql.Data.FirebirdClient.FbConnectionPool.CheckOut () [0x00000] in <filename unknown>:0
  at (wrapper remoting-invoke-with-check) FirebirdSql.Data.FirebirdClient.FbConnectionPool:CheckOut ()
  at FirebirdSql.Data.FirebirdClient.FbConnection.Open () [0x00000] in <filename unknown>:0

I’m using the NETProvider-3.1.0.0-MONO_LINUX version of the provider (http://www.firebirdsql.org/en/net-provider/). Apparently this method is not yet implemented in Mono, but as I don’t have the source code, do you have any idea of some workaround ? I’m pretty sure there must be one because if not, this provider made for mono is totaly useless and not tested… 😦

The answer

I’ve found a solution by using the previous version (NETProvider-2.6.5-MONO_LINUX) of the drivers based on this article.
What’s funny, is that the driver in question is not listed anymore on the official Firebird website… anyway, if you have issue to, try this one from fb sourceforge : NETProvider-2.6.5-MONO_LINUX

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s