I'm doing a version 0.0.1 implementation of a host based Endpoint, which has worked just fine until I got errors complaining about:
non-Unicode headers something something ...
At transport database level.
Sadly that didn't get logged, so I don't have the exact message.
As I didn't have that before, I removed my localdb and recreated it blank. I ran the endpoint again and now I get these notifications:
Unable to register endpoint startup with ServiceControl
2017-08-24 10:03:48.743 | Warn | ServiceControl.Features.Heartbeats | Unable to register endpoint startup with ServiceControl. Going to reattempt registration after 00:01:00.
NServiceBus.Unicast.Queuing.QueueNotFoundException: Failed to send message to [ServiceBusTransport].[dbo].[Particular.ServiceControl.Dev] ---> System.Data.SqlClient.SqlException: Invalid object name 'ServiceBusTransport.dbo.Particular.ServiceControl.Dev'.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption)
at System.Data.SqlClient.SqlCommand.CompleteAsyncExecuteReader(Boolean isInternal, Boolean forDescribeParameterEncryption)
at System.Data.SqlClient.SqlCommand.InternalEndExecuteNonQuery(IAsyncResult asyncResult, String endMethod, Boolean isInternal)
at System.Data.SqlClient.SqlCommand.EndExecuteNonQueryInternal(IAsyncResult asyncResult)
at System.Data.SqlClient.SqlCommand.EndExecuteNonQueryAsync(IAsyncResult asyncResult)
at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
Unable to send heartbeat to ServiceControl
2017-08-24 10:03:58.757 | Warn | ServiceControl.Features.Heartbeats | Unable to send heartbeat to ServiceControl.
NServiceBus.Unicast.Queuing.QueueNotFoundException: Failed to send message to [ServiceBusTransport].[dbo].[Particular.ServiceControl.Dev] ---> System.Data.SqlClient.SqlException: Invalid object name 'ServiceBusTransport.dbo.Particular.ServiceControl.Dev'.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption)
at System.Data.SqlClient.SqlCommand.CompleteAsyncExecuteReader(Boolean isInternal, Boolean forDescribeParameterEncryption)
at System.Data.SqlClient.SqlCommand.InternalEndExecuteNonQuery(IAsyncResult asyncResult, String endMethod, Boolean isInternal)
at System.Data.SqlClient.SqlCommand.EndExecuteNonQueryInternal(IAsyncResult asyncResult)
at System.Data.SqlClient.SqlCommand.EndExecuteNonQueryAsync(IAsyncResult asyncResult)
at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
I've got no clue what I changed to cause this, any idea?
I do know that Particular.ServiceControl.Dev
is the name of my ServiceControl Queue. It feels like the matching table wasn't created, but I'm not sure why.
Found it, we don't have ServiceControl set up at dev level. And since I removed the ServiceBusTransport
database in it's entirity, the Particular.ServiceControl.Dev
wasn't being created.
After creating it manually using this query, it worked again:
CREATE TABLE [dbo].[Particular.ServiceControl.Dev](
[Id] [uniqueidentifier] NOT NULL,
[CorrelationId] [varchar](255) NULL,
[ReplyToAddress] [varchar](255) NULL,
[Recoverable] [bit] NOT NULL,
[Expires] [datetime] NULL,
[Headers] [varchar](max) NOT NULL,
[Body] [varbinary](max) NULL,
[RowVersion] [bigint] IDENTITY(1,1) NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]