중단 점 바인딩 실패-Visual Studio 2015


158

방금 Visual Studio 2013에서 2015로 업그레이드했으며 이제 중단 점에 문제가 있습니다.

브레이크 포인트가 실제로 작동하는 히트 또는 미스입니다. 디버깅 중에 하나를 설정하면 오류가 발생합니다.

중단 점이 바인드되지 못했습니다.

도움을 주시면 감사하겠습니다. 나는 2015 년을 포기하고 돌아갈 준비가되었습니다.

답변:


226

나는 같은 문제가 있었지만 다른 해결책이 있었다. VS 2015 업데이트 1로 업데이트했는데 문제가 계속 발생합니다.

이전 버전의 VS 시작 디버그에서는 디버그 모드에서 빌드를 자동으로 트리거했습니다. 그러나 VS2015에서는 그렇지 않습니다.

따라서 마지막 빌드가 릴리스 모드에 있고 디버깅을 시도하면 중단 점이 작동하지 않습니다.

먼저 디버그 모드에서 수동으로 빌드 한 다음 디버깅을 시작해야합니다.


3
이건 이상한 행동 아닌가요? 버그로 간주 될 수 있습니까?
Tolga Evcimen

Microsoft Visual Studio 2015 업데이트 3 용 업데이트 (KB3165756)를 설치하면 이전에 "브레이크 포인트를 바인딩하지 못했습니다."라는 디버깅 문제가 해결되었습니다. C # 조회수 오류

2
이것은 실제로 좋았습니다 :) 릴리스 빌드 활성화를 잊어 버렸고 이것을 읽을 때까지 매우 이상한 디버깅 세션이 발생했습니다. 디버그를 다시 활성화해야한다는 것을 기억하고 모든 것이 "정상"입니다.
Spacer

1
나는 이상한 경험을했다. 빌드를 "Release"로 설정 한 다음 "Debug"로 설정하고 다시 빌드해야했습니다.
samneric

@TolgaEvcimen VS 15.5.6부터 2 년이 지난 후에도 동작은 여전히 ​​동일하므로 MS는 버그로 간주하지 않는다고 말합니다. 개인적으로 디버그 빌드를 자동으로 트리거하는 이전 동작으로 되 돌리는 것이 더 논리적이라고 생각합니다. 또는 적어도 경고를하십시오.
맥스 파 빌리

82

나는 같은 문제가 있었다.

프로젝트 속성 빌드 탭에서 "코드 최적화"옵션을 비활성화하는 문제를 해결했습니다.


문제는 여전히 내 프로젝트 중 하나에서 다시 발생합니다. 어쨌든, 업데이트 1이 나왔으므로 Visualstudio.com/en-us/news/vs2015-update1-vs.aspx
Sealer_05

2
이것이 디버그 빌드의 요점이 아닌가? "코드 최적화"가 해제 된 릴리스 빌드에 대해 조언합니다.
Bart Friederichs

구성 관리자를 살펴보면 솔루션에 대한 디버그로 전환했으며 일부 프로젝트가 릴리스로 잘못 설정되어 있음을 발견했습니다. 즉, 드롭 다운에서 디버그를 선택하면 해당 프로젝트가 릴리스 구성을 사용하게되어 최적화 된 것입니다.
AaronLS

39

이것은 사소한 것처럼 보일지 모르지만 언급 한 것과 동일한 문제로 많은 헤드 스크래칭을 한 후에 디버깅을 시도했을 때 내 빌드가 "디버그"대신 "릴리스"로 설정되어 있음을 알았습니다. "디버그에 대한 솔루션 재 구축 "고정하고 중단 점을 정상적으로 설정할 수 있습니다.


2
그로 인해 중단 점을 설정할 수 있었지만 영원히 지속되지는 않습니다. 또한 여전히 여전히 임의의 코드 줄을 건너 뛰는 디버깅 문제가 있습니다.
Sealer_05

이 문제는 완전히 다른 솔루션에 대한 일회성 임시 성공 보고서에도 불구하고 지속됩니다. 그러나이 특정 "수정"은 "컴퓨터가 연결되어 있는지"와 나란히 놓아야합니다. 실제로 해결책이 아닙니다. 예, 전원이 필요하며 릴리스 빌드-geez에서 중단 점을 설정할 수 없습니다.
Rick O'Shea

@ Kennes Møller 언급했듯이 사소한 것으로 보일 수도 있지만 내 문제도 해결되었습니다.
벤 주니어

36

로컬 창에서 평가하지 않는 특정 로컬 변수뿐만 아니라 중단 점이 바인딩되지 않는 것과 비슷한 문제가 있습니다. 마지막으로 수정 된 것은 옵션-> 디버그-> 일반 탭에서 "모듈로드시 JIT 최적화 억제 (관리 전용)"옵션을 활성화하는 것입니다. 일단 문제없이 바인딩 할 수 있다고 설정했습니다.


나는 그것을 쐈지만 여전히 내 API 컨트롤러에서 중단 점을 타격하지 않았습니다.
Sealer_05

최적화 된 코드를 사용한 디버깅에 대한 좋은 설명이 있습니다.
Nathan

아니, 이건 해결책이 아니야 우리가 얻고있는 것은이 문제에 아무런 관계가없는 무작위 전환을 조정 명, 즉 그 자체 사라질 것으로 보인다
릭 오셔

드디어. 또한 이전에 건너 뛴 코드를 단계별로 살펴볼 수있었습니다.
Jeff Davis

이것은 VS 2019에서 나를 위해 해결했습니다. 너무 감사합니다!
EM0

14

나는이 문제가 있었다. Web.config성능 모니터 설정으로 파일 을 수정 한 성능 프로파일 링 세션을 실행했습니다 .

<appSettings>
   <add key="Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrLocation" value="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Team Tools\Performance Tools\vsinstr.exe"/>
</appSettings>


<compilation debug="true" targetFramework="4.5" 
      assemblyPostProcessorType="Microsoft.VisualStudio.Enterprise.Common.AspPerformanceInstrumenter, Microsoft.VisualStudio.Enterprise.AspNetHelper, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
   ...
</compilation>


<runtime>
   <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
         <assemblyIdentity name="Microsoft.VisualStudio.Enterprise.AspNetHelper" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
         <codeBase version="16.0.0.0" href="file:///D:/Program%20Files%20(x86)/Microsoft%20Visual%20Studio/Shared/Common/VSPerfCollectionTools/vs2019/Microsoft.VisualStudio.Enterprise.AspNetHelper.DLL"/>
      </dependentAssembly>
      <dependentAssembly>
         <assemblyIdentity name="VsWebSite.Interop" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
         <codeBase version="8.0.0.0" href="file:///D:/Program%20Files%20(x86)/Microsoft%20Visual%20Studio/Shared/Common/VSPerfCollectionTools/vs2019/VsWebSite.Interop.DLL"/>
      </dependentAssembly>
   </assemblyBinding>
</runtime>

이로 인해 중단 점에서 멈출 수 없었습니다. 원래 Web.config로 되 돌리면 (성능 프로파일 러 설정이 제거됨) 중단 점이 다시 작동하기 시작했습니다.


1
이것은 VS 2017에서 프로파일 링 한 후 나를위한 솔루션이었습니다. 많은 감사합니다.
Lee Taylor

1
중단 점이 바인딩에 실패하는 많은 원인이있는 것처럼 보이지만 이것이 우리가 본 것입니다.
BJury

2
이것은 나를위한 것이었다. 이 AppSetting을 제거했습니다 :<add key="Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrLocation" value="C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Team Tools\Performance Tools\vsinstr.exe"/>
Chad Hedgcock

5

나는 어제 같은 문제가 있었다. "Clean Solution"기능을 사용했는데 도움이되었습니다.


3
거의 코미디 중심과 같습니다. 나는 "기계 위에 고무 닭을 and 고 작동했습니다"를 기다리고 있습니다. 우리는이 문제를 경험 한 6 명의 개발자를 보유하고 있으며,이 마법은 설명이 필요없는 마술 같은 솔루션이 아닙니다.
Rick O'Shea

5

해결책은 디자인 최적화를 비활성화하는 것입니다.

Project Properties> Build> Advanced Compile Options> Enable Optimizations


4

내 솔루션에서 성능을 실행하고 이것을 web.config에 추가했습니다.

<compilation debug="true" targetFramework="4.5" assemblyPostProcessorType="Microsoft.VisualStudio.Enterprise.Common.AspPerformanceInstrumenter, Microsoft.VisualStudio.Enterprise.AspNetHelper, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 

(가) assemblyPostProcessorType문제, 나는 그것을 삭제하고 내 문제를 해결하는



1

'최적화'설정을 변경하지 않았지만 다른 답변을 바탕으로

  1. 프로젝트의 모든 파일을 표시하도록 솔루션 탐색기 설정
  2. 숨겨진 저장소 및 디버그 폴더를 삭제했습니다.
  3. 프로젝트에서 '청결'수행
  4. 프로젝트에서 '재 구축'수행

지금 까지이 문제가 해결되었습니다. VS2015 업데이트 2로 업데이트하는 것처럼 시스템에서 몇 가지 사항이 발생했습니다.


1

나는 이것이 오래된 게시물이라는 것을 알고 있지만 위의 다른 모든 트릭이 효과가없는 경우 디버깅하려는 이미지가 최신인지 확인하십시오. .NET Core 프로젝트를 RPi의 내 Raspberry Pi 'unzip'으로 게시하고 전송 한 후 어떤 이유로 작업 디렉토리의 일부 DLL을 복사하고 덮어 쓰지 않았습니다. 모든 것이 정상이라고 생각하는 디버거를 첨부했을 때 일부 중단 점이 발생하고 다른 일부는 그렇지 않고 일부는 나에게 "바인드 할 수 없음"오류를 표시했습니다. 압축 해제 문제를 해결하면 모든 중단 점과 기호가 다시 나타납니다. 이게 도움이 되길 바란다.


0

오늘 바인딩 중단 점 오류가 발생했습니다. 그리고 나는 내 문제를 해결했다.

모든 디버그 구성이 올바르지 않으면 아래에서 수행하는 문제를 해결할 수 없습니다.

  1. 클린 프로젝트
  2. 출력 경로가 bin 폴더와 다른 경우 bin 폴더로 바꾸십시오 (이것이 가장 중요한 규칙입니다)
  3. 재건

아마도이 솔루션은 누군가를 도울 수 있습니다.


0

VS 중단 점은 비동기 메소드에서 바인드 할 수 없습니다.

이로 인해 App Dynamics 에이전트가 설치되었습니다. 그것을 제거하고 당신은 갈 수 있습니다.


0

같은 문제가 있었지만 디버그 도구 모음에서 "디버그"가 "릴리스"로 변경되었음을 알지 못했습니다 (일반적으로 메뉴 바로 아래). 그래서 나는 그것을 "디버그"로 설정했습니다.



0

1 단계, 명백한 것을 배제하십시오 :

  • 디버그 모드에서 컴파일하십시오.
  • 중단 점을 설정하기 전에 솔루션을 청소하십시오.
  • 디버그 폴더로 이동하여 [응용 프로그램] .pdb 파일을 삭제하십시오.
  • 그런 다음 응용 프로그램 빌드 또는 재 빌드를 수행하십시오.
  • 디버그 폴더로 이동하여 새로운 [응용 프로그램] .pdb 파일이 있는지 확인하십시오.
  • 그런 다음 중단 점을 설정하십시오.

2 단계 C ++ 프로젝트의 경우 :

다음 프로젝트 속성을 확인하십시오.

  • C ++ / 일반 / 디버그 정보 형식 : 프로그램 데이터베이스.
  • C ++ / 최적화 : 비활성화
  • C ++ / 코드 생성 / 런타임 라이브러리 : 멀티 스레드 디버그.
  • 링커 / 디버깅 / 디버그 정보 생성 : 예.
  • 링커 / 디버깅 / 생성 프로그램 데이터베이스 : $ (TargetDir) $ (TargetName) .pdb.
  • 링커 / 매니페스트 파일 / 생성 매니페스트 : 아니요.
  • 링커 / 매니페스트 파일 / 격리 허용 : 아니요.
  • 링커 / 내장 IDL / 내장 IDL 무시 : 예.
  • 1 단계를 다시 수행하십시오.

    __debugbreak ()를 추가 할 수 있습니다. 이 문장은 중단하려는 소스 파일에 있어야합니다.

2 단계 C # 프로젝트의 경우 :

  • 프로젝트 속성에서 빌드 / 일반 / 최적화 코드를 비활성화해야합니다.
  • IDE 설정 디버그 / 옵션 및 설정 / 디버깅 / 일반 모듈로드시 JIT 최적화 억제 (관리 전용) : 사용
  • 1 단계를 다시 수행하십시오.

다른 머신에서 솔루션을 열어보십시오. 다른 머신에서 중단 점을 바인딩 할 수 있으면 VS 또는 OS에 문제가 있음을 의미 할 수 있습니다.

3 단계 : VS가 최신인지 확인하십시오.

VS2013 RTM과 VS2015 업데이트 1 및 업데이트 2에서 이와 같은 문제에 대한보고가있었습니다.

VS에서 도구 / 확장 및 업데이트 / 업데이트 / 제품 업데이트로 이동하여 실행중인 버전을 확인하십시오. 업데이트가 필요한 경우 업데이트가 나타납니다.

4 단계, OS가 최신인지 확인하십시오.

마지막으로 Win 10 OS를 실행하는 경우 빌드 14251에 존재하는이 문제와 관련하여보고 된 버그가 있습니다.이 문제는 빌드 14257 이상에서 해결되었습니다.


0

방금 비슷한 문제가 발생하여 여기서 직면 한 문제에 대한 답변이 없습니다. 그러나 질문과 달리 바인딩에 실패했다는 메시지는 절대받지 않습니다. 중단 점은 절대로 맞지 않습니다. 잘하면 이것은 WCF로 벽에 머리를 두드리는 미래의 누군가에게 도움이 될 것입니다.

TL / DR :
SOAP 메시지에 잘못된 데이터가있는 레코드가있어 중단 점이 적용되지 않았습니다.

전체 이야기 :

다른 팀의 WSDL 기반 WCF 서비스가 있습니다. 내 정의가 아니고 통제 할 수 없습니다 ...이 서비스를 통해 다른 팀으로부터 메시지를받습니다. 제 경우에는 메시지를 받고 데이터베이스의 메시지 로그 테이블에 메시지를 기록 할 수 있습니다 (서비스 메소드가 호출되기 전에 발생 함), 서비스 메소드가 겉보기에 호출 된 것 같고 서버가 응답합니다 202는 받아 들여졌다. 메소드 호출 중에 데이터베이스에 데이터가 저장되지 않는 것을 제외하고 통신이 작동 중입니다.

서비스가 성공 응답을 반환하기 때문에 http 및 전송 관련 문제를 배제했습니다.

그래서 VS2015를 시작하여 서비스를 디버깅했습니다. 문제의 메시지는 크지 만 내가 기대하는 것의 한계 내에 있습니다. 서비스 메소드의 첫 번째 줄에 중단 점을두고 큰 메시지를 보냈지 만 중단 점이 적중하지 않았습니다. 나는 동일한 실행 인스턴스에서 작동한다는 것을 알고 작은 메시지를 시도했으며 중단 점이 잘 맞았습니다. 그래서 구성의 모든 것이 잘 보였습니다. 메시지 크기에 문제가 있다고 생각했습니다.

내가 찾을 수있는 모든 것을 시도했습니다. 디버거를 w3wp 프로세스 (VS 이미있었습니다)에 수동으로 연결, Debugger.Break()중단 점 대신 사용 , 여러 시작 프로젝트 설정, 테스트 프로젝트 언로드 따라서 서비스 프로젝트가 .NET을 업데이트하고 VS2015를 다시 시작하고 재부팅하고 로컬 IIS에서 IIS Express로 전환 한 후 다시 유일하게 보장 된 최신 WSDL을 사용하여 서비스를 다시 만들었습니다. 상관 없습니다. 중단 점에 도달 한 적이 없습니다.

데이터가 나쁜 단일 레코드를 찾을 때까지 큰 메시지의 레코드를 하나씩 제거해야했습니다. 제 경우에는 2 개의 DateTime 필드에 대한 값이없는 하나의 레코드였습니다. 이 하나의 레코드 만있는 메시지를 작성하여 보냈을 때 중단 점이 발생하지 않았습니다. 그 2 개의 DateTime 필드에 값을 제공하고 예상대로 중단 점에서 동일한 (고정 된) 메시지를 보냈습니다.

모든 단일 CLR 예외를 사용하도록 설정했지만 .pbd 파일 누락 이외의 다른 것은 발생하지 않았습니다. WCF는 불량 기록을 통해 요청을 행복하게 보냈습니다. WCF가 계약에 따라 보내지 말았어야한다는 말은 아닙니다. 나쁜 기록으로 인해 중단 점이 발생하지 않았다는 것입니다.


0

디버깅을 활성화하려면 web.config 파일을 수정해야했습니다. 이것을 변경하십시오 :

<compilation debug="true" targetFramework="4.5.2" assemblyPostProcessorType="Microsoft.VisualStudio.Enterprise.Common.AspPerformanceInstrumenter, Microsoft.VisualStudio.Enterprise.AspNetHelper, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

에:

<compilation debug="true"/>

0

다른 솔루션을 시도하기 전에 전체 솔루션을 청소 하십시오. 이전 답변에서 언급 한 거의 모든 것을 시도하고 Visual Studio를 여러 번 다시 시작한 후에 솔루션을 청소하면 트릭이되었습니다!


0

나는 여기에 제안 된 모든 것을 시도했다. 결국 프로젝트 속성-> 웹의 "특정 페이지"를 로컬 시작 URL, 페이지 및 쿼리 매개 변수로 설정했습니다. 디버그 모드에서 정리하고 다시 작성했는데 중단 점에 도달했습니다.


0

이것은 훨씬 이후 빌드 (VS2017)이지만 C # 프로젝트 에서이 문제가 발생했습니다. 청소, 재건축, Visual Studio 재시작 등을 시도했습니다.

해결 방법 Visual Studio를 닫고 솔루션 디렉토리에있는 숨겨진 폴더 인 .vs 폴더를 삭제했습니다. .vs 폴더를 삭제해도 문제가 발생하지 않지만 시작 프로젝트를 재설정해야합니다.


0

필자의 경우을 사용한 후 새로운 web.config 파일이 생성되었습니다 Profiler. web.config를 이전 버전으로 복원하면이 문제가 해결되었습니다. VS2015 C # 웹 애플리케이션이었습니다.


0

웹 응용 프로그램 검사를 게시 Configuration로 설정 한 경우 Debug(기본적으로 디버그 구성에서는 코드가 최적화되지 않고 기호 테이블이 완전히 작성되도록 설정되어 있음)여기에 이미지 설명을 입력하십시오


-1

이전 답변을 살펴 보았고 @ Will 's answear 는 내가 가지고 있었던 주요 문제를 해결했으며 다른 하나는 편집하고 계속할 수는 있지만 AssemblyInfo.cs 파일을 자세히 살펴보면 비활성화 된 디버깅 기능을 발견했습니다.

그런 다음 이전 디버그 속성을 제거하고 다른 프로젝트에서 가져온 다음을 추가했습니다.

#if DEBUG
[assembly: System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute.DebuggingModes.DisableOptimizations | System.Diagnostics.DebuggableAttribute.DebuggingModes.EnableEditAndContinue | System.Diagnostics.DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | System.Diagnostics.DebuggableAttribute.DebuggingModes.Default)]
#endif

그러나 나는 이것이 최선의 방법이 아니라고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.