Acabei de atualizar do Visual Studio 2013 para 2015 e agora estou tendo problemas com pontos de interrupção.
É um acerto ou um erro onde os pontos de interrupção realmente funcionam e se eu definir um durante a depuração, recebo o erro:
O ponto de interrupção falhou ao ligar.
Qualquer ajuda seria apreciada. Estou prestes a desistir de 2015 e voltar.
Eu tive o mesmo problema.
Resolvi desabilitar a opção "Otimizar código" na guia Build das propriedades do projeto.
fonte
Isso pode parecer trivial, mas depois de muitos headscratchs com os mesmos problemas que você mencionou, descobri que minha compilação estava configurada para "release" em vez de "debug" quando tentei depurar .. reconstruindo a solução para "debug "corrigi-lo e eu poderia definir pontos de interrupção normalmente
fonte
Eu tive um problema semelhante com os pontos de interrupção que não ligavam, bem como certas variáveis locais que não foram avaliadas na janela Locals. O que finalmente foi corrigido foi ativar a opção "Suprimir otimização JIT na carga do módulo (somente gerenciado)" na guia Opções-> Depurar-> Geral. Uma vez eu configurei que era capaz de vincular sem problema.
fonte
Eu tive esse problema. Executei uma sessão de perfil de desempenho que modificou o
Web.config
arquivo com as configurações do monitor de desempenho:Isso quebrou minha capacidade de parar nos pontos de interrupção. Quando voltei ao Web.config original (removi as configurações do Performance Profiler), os pontos de interrupção começaram a funcionar novamente.
fonte
<add key="Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrLocation" value="C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Team Tools\Performance Tools\vsinstr.exe"/>
Eu tive o mesmo problema ontem. Eu usei o recurso "Solução Limpa" e ajudou.
fonte
a solução é desativar a otimização do design.
Project Properties> Build> Advanced Compile Options> Enable Optimizations
fonte
Executo o desempenho na minha solução e isso foi adicionado ao meu web.config
o
assemblyPostProcessorType
é o problema, eu apaguei e isso resolveu o meu problemafonte
fonte
Não alterei a configuração 'otimizar', mas com base em outras respostas aqui,
Até agora, isso foi corrigido para mim. Parece que a atualização para o VS2015 Update 2 trouxe algumas coisas no meu sistema.
fonte
Sei que este é um post antigo, mas, caso todos os outros truques acima não funcionem, verifique se a imagem que está tentando depurar está atualizada. Por algum motivo, depois de publicar e transferir um projeto .NET Core para o meu Raspberry Pi 'descompactar' no RPi, não estava copiando nem substituindo algumas DLLs no diretório ativo. Quando anexei o depurador, achando que estava tudo bem, alguns pontos de interrupção estavam sendo atingidos, outros não e outros estavam me dando o erro "não é possível vincular". Depois que resolvi o problema de descompactar, todos os meus pontos de interrupção e símbolos voltaram. Eu espero que isso ajude.
fonte
Encontrei os erros de ponto de interrupção de ligação hoje. E eu resolvi meu problema fazendo belows.
Se todas as suas configurações de depuração não estiverem corretas, não será possível corrigir o problema fazendo o seguinte.
Talvez essa solução ajude alguém.
fonte
Os pontos de interrupção do VS não podem ser vinculados aos métodos assíncronos.
Eu tinha um agente do App Dynamics instalado que causou isso. Remova isso e você está pronto para ir.
fonte
Eu tive o mesmo problema, mas não percebi que "Debug" havia mudado para "Release" na barra de ferramentas de depuração (geralmente diretamente no menu). Então, eu defini-lo para "Debug" funcionou.
fonte
A nova atualização para o Microsoft Visual Studio 2015, atualização 3 (KB3165756) corrigiu o problema de ponto de interrupção para mim, onde estou tentando inspecionar as variáveis locais no código C # incorporado nos arquivos cshtml nos aplicativos ASP.NET Core.
fonte
PASSO 1, descarte o óbvio:
PASSO 2 Para projetos C ++:
Verifique as seguintes propriedades do projeto:
Faça o passo 1 novamente
Você pode tentar adicionar __debugbreak (). Esta declaração precisa ir no seu arquivo de origem onde você deseja quebrar.
PASSO 2 Para projetos em C #:
Tente abrir sua solução em outras máquinas. Se você pode vincular um ponto de interrupção em uma máquina diferente, isso pode significar um problema no seu VS ou no seu SO.
PASSO 3, verifique se o seu VS está atualizado:
Houve relatos de problemas como esse no VS2013 RTM, bem como no VS2015 Update 1 e Update2.
No VS, vá para Ferramentas / Extensões e atualizações / Atualizações / Atualizações do produto e veja qual versão você está executando. Se for necessária uma atualização, ela aparecerá lá.
PASSO 4, verifique se o seu sistema operacional está atualizado:
Por fim, se você estiver executando um sistema operacional Win 10, houve um bug relatado sobre esse problema que existia no build 14251. Isso foi resolvido no build 14257 (e acima).
fonte
Acabei de encontrar um problema semelhante e nenhuma das respostas aqui foi encontrada sobre o problema que estava enfrentando. Ao contrário da pergunta, porém, nunca recebo nenhuma mensagem dizendo que houve uma falha no vínculo. O ponto de interrupção nunca chega. Espero que isso seja útil para alguém no futuro batendo a cabeça na parede com o WCF.
TL / DR:
Na mensagem SOAP, houve um registro com dados incorretos, causando o ponto de interrupção não ser atingido.
História completa:
Eu tenho um serviço WCF baseado no WSDL de outra equipe. Não é minha definição, não tenho controle sobre isso ... Recebo mensagens dessa outra equipe por meio deste serviço. No meu caso, recebo mensagens, posso registrar a mensagem na tabela de log de mensagens no banco de dados (o que acontece antes da chamada do meu método de serviço), o método do serviço é aparentemente chamado (talvez não seja) e o servidor responde com a 202 Aceito. A comunicação está funcionando, exceto que nenhum dado é salvo no banco de dados durante a chamada do método.
Como o serviço retorna uma resposta bem-sucedida, excluí questões relacionadas a http e transporte.
Então, iniciei o VS2015 para depurar o serviço. A mensagem em questão é grande, mas está dentro dos limites do que eu esperaria. Coloquei um ponto de interrupção na primeira linha do método de serviço e enviei a mensagem grande, mas o ponto de interrupção nunca foi atingido. Tentei uma mensagem menor que sabia funcionar na mesma instância de execução e o ponto de interrupção foi atingido perfeitamente. Então, tudo na configuração parecia bem. Eu pensei que talvez houvesse algo no tamanho da mensagem.
Eu tentei tudo o que pude encontrar - certificando-me de que estava em uma configuração de depuração, limpo e reconstruído, anexando manualmente o depurador ao processo w3wp (que o VS já estava), usando em
Debugger.Break()
vez de um ponto de interrupção, definindo vários projetos de inicialização, descarregando meu projeto de teste para que o projeto de serviço fosse o único, atualizando o .NET, reiniciando o VS2015, reiniciando, alternando do IIS local para o IIS Express e vice-versa, recriando o serviço com o WSDL mais recente garantido. Nada importava. O ponto de interrupção nunca foi atingido.Acabei tendo que eliminar registros da mensagem grande, um por um, até encontrar um único registro com dados incorretos. No meu caso, era um registro que não tinha valor para 2 campos DateTime. Quando criei uma mensagem que continha apenas este registro e a enviei, o ponto de interrupção não foi atingido. Quando forneci valores para esses 2 campos DateTime e enviei a mesma mensagem (fixa) no ponto de interrupção, disparada conforme o esperado.
Eu tinha todas as exceções CLR ativadas, nada foi acionado além de arquivos .pbd ausentes, dos quais não me importava. O WCF felizmente enviou a solicitação com um registro ruim. Não estou dizendo que o WCF não deveria ter enviado com base nos contratos, apenas que o registro ruim fez com que o ponto de interrupção não fosse atingido.
fonte
Eu tive que modificar o arquivo web.config para habilitar a depuração. Mude isso:
para:
fonte
Limpe toda a solução antes de tentar qualquer uma das outras soluções. Depois de tentar quase tudo o que foi dito nas respostas anteriores e reiniciar o visual studio várias vezes, basta limpar a solução!
fonte
Eu tentei tudo sugerido aqui. Eventualmente, defino a "Página específica" em Propriedades do projeto -> Web como minha URL de início local, página e parâmetro de consulta. Fiz uma limpeza e reconstrução no modo de depuração e atingiu meu ponto de interrupção.
fonte
Embora essa seja uma versão muito posterior (VS2017), tive esse problema com projetos C #. Tentei limpar, reconstruir, reiniciar o visual studio, etc.
O que foi corrigido foi fechar o Visual Studio e excluir a pasta .vs, que é uma pasta oculta localizada no diretório da solução. A exclusão da pasta .vs não deve causar problemas, embora você precise redefinir seu projeto de inicialização.
fonte
No meu caso, havia um novo arquivo web.config criado após o uso
Profiler
. A restauração do web.config para a versão anterior resolveu esse problema. Era um aplicativo da web do VS2015 C #.fonte
Caso você esteja publicando sua verificação de aplicativo da Web que
Configuration
está definida comoDebug
(por padrão, na configuração de depuração, está definido para que o código não seja otimizado e a tabela de símbolos seja totalmente criada).fonte
Eu olhei as respostas anteriores e @ de Will answear fixa o principal problema que eu estava tendo, o outro sendo capaz de editar e continuar, mas tendo um olhar mais atento sobre o arquivo AssemblyInfo.cs eu descobri alguma depuração apresenta onde desativado.
Então eu acabei removendo os atributos de depuração antigos e adicionando o seguinte que tirei de outro projeto
No entanto, sinto que essa não é a melhor maneira de fazê-lo.
fonte