IsNemoEqualTrue / monitor-table-change-with-sqltabledependency

Get SQL Server notification on record table change
MIT License
655 stars 177 forks source link

Missing api-ms-win-core-localization-obsolete-l1-2-0.dll on Win Server 2012 Standard #192

Open Luby1917 opened 4 years ago

Luby1917 commented 4 years ago

Hi! Sorry if this is a dump issue, but I can't fire out how to solve this:

I'm trying to deploy an .NET Core console app that uses SqlTableDependency. But when I run it I get always the same error: Unable to load DLL 'api-ms-win -core-localization-obsolete-l1-2-0.dll' I've tried multiple SDK versions (2.1, 2.2, 3.1), I even trying to compile the app on this server but the results is always the same.

Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'api-ms-win
-core-localization-obsolete-l1-2-0.dll' or one of its dependencies: No se puede
encontrar el módulo especificado. (Exception from HRESULT: 0x8007007E)
   at System.Data.LocaleMapper.LCIDToLocaleName(UInt32 Locale, Char* lpName, Int
32 cchName, Int32 dwFlags)
   at System.Data.LocaleMapper.LcidToLocaleNameInternal(Int32 lcid)
   at System.Data.Locale.GetDetailsInternal(Int32 lcid)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Fu
nc`2 valueFactory)
   at System.Data.SqlClient.TdsParser.GetCodePage(SqlCollation collation, TdsPar
serStateObject stateObj)
   at System.Data.SqlClient.TdsParser.TryProcessEnvChange(Int32 tokenLength, Tds
ParserStateObject stateObj, SqlEnvChange[]& sqlEnvChange)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand
 cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler,
TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cm
dHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, Tds
ParserStateObject stateObj)
   at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlis
tOK)
   at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo
serverInfo, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFail
over)
   at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo
serverInfo, Boolean redirectedUserInstance, SqlConnectionString connectionOption
s, TimeoutTimer timeout)
   at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTime
r timeout, SqlConnectionString connectionOptions, Boolean redirectedUserInstance
)
   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdent
ity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolea
n redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData
 reconnectSessionData, Boolean applyTransientFaultHandling)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOp
tions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConn
ectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)

   at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConn
ectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConne
ctionPoolKey poolKey, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owning
Object, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection o
wningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection
)
   at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection ow
ningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean o
nlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& co
nnection)
   at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection ow
ningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbCon
nectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection
 owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions
, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(Db
Connection outerConnection, DbConnectionFactory connectionFactory, TaskCompletio
nSource`1 retry, DbConnectionOptions userOptions)
   at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
   at System.Data.SqlClient.SqlConnection.Open()
   at TableDependency.SqlClient.SqlTableDependency`1.CheckIfConnectionStringIsVa
lid()
   at TableDependency.SqlClient.Base.TableDependency`1..ctor(String connectionSt
ring, String tableName, String schemaName, IModelToTableMapper`1 mapper, IUpdate
OfModel`1 updateOf, ITableDependencyFilter filter, DmlTriggerType dmlTriggerType
, Boolean executeUserPermissionCheck)
   at TableDependency.SqlClient.SqlTableDependency`1..ctor(String connectionStri
ng, String tableName, String schemaName, IModelToTableMapper`1 mapper, IUpdateOf
Model`1 updateOf, ITableDependencyFilter filter, DmlTriggerType notifyOn, Boolea
n executeUserPermissionCheck, Boolean includeOldValues)

Any hint or help will be appreciated.

Thanks

christiandelbianco commented 4 years ago

I do not maintain any more this Repository.

Zjerardo commented 4 years ago

This windows DLL api-ms-win -core-localization-obsolete-l1-2-0.dll is referenced by an outdated version of SQLClient. Update the SQLClient package through nuget to a newer version and this obsolete windows dll will no longer be referenced.