none
Very odd issue with identifier misspellings RRS feed

  • Question

  • I am having a very, VERY odd issue.
    The full exception reads:

    System.Data.SqlClient.SqlException: The multi-part identifier "CustomerManagement.Addrews.ZipCode4" could not be bound. at System.Data.SqlClient.SqlConnection.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.SqlDataReader.ConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable) at OST.Framework.DataAccess.Persistence.PersistableObject.Select[T](SqlCommand command, PersistenceSettings settings) at OST.Framework.DataAccess.Persistence.PersistableObject.SelectSingle[T](SqlCommand command, PersistenceSettings settings) --- End of inner exception stack trace --- at Asurint.Secure.SearchWizard.LoadStep(SearchWizardStep step) in g:\Projects\Liquid\Projects_Prod\Asurint\Secure\SearchWizard.aspx.cs:line 644 at Asurint.Secure.SearchWizard.Page_Load(Object sender, EventArgs e) in g:\Projects\Liquid\Projects_Prod\Asurint\Secure\SearchWizard.aspx.cs:line 388 at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

    The issue here is that the CustomerManagement.Addrews.ZipCode4 is misspelled in the error message (this should be read CustomerManagement.Address.ZipCode4), yet it is not misspelled anywhere in the .NET source code. This identifier is comprised of a db schema name, table name, and column name.

    This exception occurs randomly on different objects, including stored procedure names, and cannot be reproduced.
    Any other time this particular identifier when referenced seems to be spelled correctly and no exceptions are ever thrown.
    I'd say this happens about 2 times a week with my application.

    I don't know what could be changing the spelling of this text and what could be causing this to happen.

    The system this code is being executed against is an Intel Xeon CPU 3.00GHz 4.00 GB of RAM with a Microsoft Windows Server 2003 Standard x64 Edition (Service Pack 2) OS.

    Anyone run into this and/or knows what the issue, resolution might be?


    Tuesday, January 8, 2008 3:08 PM

Answers

  • (The system this code is being executed against is an Intel Xeon CPU 3.00GHz 4.00 GB of RAM with a Microsoft Windows Server 2003 Standard x64 Edition (Service Pack 2) OS.)

     

    In X64 boxes IIS6 should be run in 32bit mode with aspnet_regiis run on the 32bits folder of IIS6 which means everything should be in 32bits mode.  I am not saying this is the cause but when you mix platforms strange thing happen, so I will check the setup in IIS6 because the Asp.net parser and all VS2005/8 are still 32bits applications that can be used to create and run 64bits DLLs.

    Tuesday, January 8, 2008 4:23 PM

All replies

  • (The system this code is being executed against is an Intel Xeon CPU 3.00GHz 4.00 GB of RAM with a Microsoft Windows Server 2003 Standard x64 Edition (Service Pack 2) OS.)

     

    In X64 boxes IIS6 should be run in 32bit mode with aspnet_regiis run on the 32bits folder of IIS6 which means everything should be in 32bits mode.  I am not saying this is the cause but when you mix platforms strange thing happen, so I will check the setup in IIS6 because the Asp.net parser and all VS2005/8 are still 32bits applications that can be used to create and run 64bits DLLs.

    Tuesday, January 8, 2008 4:23 PM
  • Have you used CodeSmith to build your data access layer? Are you persisting any stored procedure or database schema in xml files or take advantage of caching?

     

     

    Tuesday, January 8, 2008 7:11 PM