Entrando em um novo projeto, o desenvolvimento e a manutenção de um programa de longa duração, decidi atualizar meu laptop. Há muito tempo eu queria algo tão compacto e leve, para poder levá-lo com segurança a um café, trabalhar por uma ou duas horas fora do escritório.
A escolha caiu no laptop HP com uma tela de 14 '' que suporta a extensão 1920x1080, que foi o critério decisivo para a escolha. O hardware parece estar bom, mas o software da HP faz você pensar se era necessário.
A história
A funcionalidade do programa com o qual você precisa trabalhar, como eu disse, tem vida longa, ou seja, Ele experimentou muitas iterações, mudanças de gerentes e desenvolvedores e é uma mistura de tudo que é correto, compreensível e incompreensível com o status "Por que isso foi necessário?". Em suma, um bom código legado.
Portanto, um dos recursos da funcionalidade é o uso de transações distribuídas. I.e. o computador deve executar o serviço MSDTC (também conhecido como Coordenador de Transações Distribuídas, também conhecido como Coordenador de Transações Distribuídas) e as configurações correspondentes estão ativadas.
Tudo parece estar bem. Para outros membros da equipe (eles não usam a HP), o projeto é compilado, lançado e todos os cenários são elaborados. O trabalho está em pleno andamento.
Bom Pego minha nova HP, configuro, instale, baixe, compile, execute, execute scripts e bam, erro:
System.Data.SqlClient.SqlException (0x80131904): MSDTC on server 'MALS-K9CA69NU' is unavailable. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.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.SqlDataReader.TryConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.TdsParser.TdsExecuteTransactionManagerRequest(Byte[] buffer, TransactionManagerRequestType request, String transactionName, TransactionManagerIsolationLevel isoLevel, Int32 timeout, SqlInternalTransaction transaction, TdsParserStateObject stateObj, Boolean isDelegateControlRequest) at System.Data.SqlClient.TdsParser.GetDTCAddress(Int32 timeout, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlInternalConnectionTds.GetDTCAddress() at System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx) at System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx) at System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction) at System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction) at System.Data.ProviderBase.DbConnectionPool.PrepareConnection(DbConnection owningObject, DbConnectionInternal obj, Transaction transaction) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at ...
Bom Tudo pode acontecer. Estou começando a cavar.
Depois de horas gastas, removendo o antivírus, desativando o firewall (também conhecido como firewall), usando todas as recomendações da Internet, o problema permanece. O erro aparece teimosamente.
Examinando a próxima postagem Erro: 8004E00F ao tentar acessar aplicativos COM + nos Serviços de componentes, encontramos um comentário, graças ao tsd.

Bom Desative os serviços que começam com a HP, pois existem alguns deles:

Desativar o primeiro serviço "Serviço HP Analytics" fornece o resultado. Tudo começa a funcionar. MSDTC funciona bem, todos os scripts são bem sucedidos.
Então, quem é você, serviço HP Analytics? Examinamos o caminho completo e o nome do arquivo executável:
C:\windows\System32\DriverStore\FileRepository\hpanalyticscomp.inf_amd64_19ec9c352a1b5135\x64\TouchpointAnalyticsClientService.exe
No mecanismo de pesquisa, basta digitar o Touchpoint Analytics Client
para ler tudo bom sobre este programa e o quanto eles tentam removê-lo.
Resumidamente, a julgar pelos registros na Internet, o serviço HP Analytics (também conhecido como TouchpointAnalyticsClientService.exe, também conhecido como HP Touchpoint Analytics, também conhecido como TAInstaller.exe, etc.) é um programa pelo qual a HP remove a telemetria do computador e envia na HP. A principal característica de seu trabalho é que estraga a vida dos usuários da HP, o processador é carregado e, agora, o MSDTC é interrompido.
Resumir
Há um problema com o MSDTC.
Sintomas
- Você tem um computador HP.
- Você persistentemente recebe o erro "System.Data.SqlClient.SqlException (0x80131904): MSDTC no servidor 'server_name' está indisponível."
- Você também recebe o erro "8004E00F ao tentar acessar aplicativos COM + nos Serviços de componentes" ao trabalhar com o Serviço de componentes, ( consulte ).
- Disponibilidade de um serviço HP Analytics em funcionamento.
Solução rápida:
- Execute o utilitário de
do
:

- Nos serviços, desative
HP Analytics service
:

- Nós reiniciamos o computador.