I ran in to this weird error last night when trying to send a DataTable as a parameter to a webservice. It took me a minute, but finally the underlying exception showed the issue. I had created the DataTable myself as a method for transporting multiple parameters, and had not given the newly defined/created DataTable a TableName. So I set the TableName property on the DataTable, and viola! Everything worked as exepected.