답변:
나는 같은 문제가 있었지만 다른 해결책이 있었다. VS 2015 업데이트 1로 업데이트했는데 문제가 계속 발생합니다.
이전 버전의 VS 시작 디버그에서는 디버그 모드에서 빌드를 자동으로 트리거했습니다. 그러나 VS2015에서는 그렇지 않습니다.
따라서 마지막 빌드가 릴리스 모드에 있고 디버깅을 시도하면 중단 점이 작동하지 않습니다.
먼저 디버그 모드에서 수동으로 빌드 한 다음 디버깅을 시작해야합니다.
나는 같은 문제가 있었다.
프로젝트 속성 빌드 탭에서 "코드 최적화"옵션을 비활성화하는 문제를 해결했습니다.
이것은 사소한 것처럼 보일지 모르지만 언급 한 것과 동일한 문제로 많은 헤드 스크래칭을 한 후에 디버깅을 시도했을 때 내 빌드가 "디버그"대신 "릴리스"로 설정되어 있음을 알았습니다. "디버그에 대한 솔루션 재 구축 "고정하고 중단 점을 정상적으로 설정할 수 있습니다.
로컬 창에서 평가하지 않는 특정 로컬 변수뿐만 아니라 중단 점이 바인딩되지 않는 것과 비슷한 문제가 있습니다. 마지막으로 수정 된 것은 옵션-> 디버그-> 일반 탭에서 "모듈로드시 JIT 최적화 억제 (관리 전용)"옵션을 활성화하는 것입니다. 일단 문제없이 바인딩 할 수 있다고 설정했습니다.
나는이 문제가 있었다. 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로 되 돌리면 (성능 프로파일 러 설정이 제거됨) 중단 점이 다시 작동하기 시작했습니다.
<add key="Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrLocation" value="C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Team Tools\Performance Tools\vsinstr.exe"/>
나는 어제 같은 문제가 있었다. "Clean Solution"기능을 사용했는데 도움이되었습니다.
내 솔루션에서 성능을 실행하고 이것을 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
문제, 나는 그것을 삭제하고 내 문제를 해결하는
나는 이것이 오래된 게시물이라는 것을 알고 있지만 위의 다른 모든 트릭이 효과가없는 경우 디버깅하려는 이미지가 최신인지 확인하십시오. .NET Core 프로젝트를 RPi의 내 Raspberry Pi 'unzip'으로 게시하고 전송 한 후 어떤 이유로 작업 디렉토리의 일부 DLL을 복사하고 덮어 쓰지 않았습니다. 모든 것이 정상이라고 생각하는 디버거를 첨부했을 때 일부 중단 점이 발생하고 다른 일부는 그렇지 않고 일부는 나에게 "바인드 할 수 없음"오류를 표시했습니다. 압축 해제 문제를 해결하면 모든 중단 점과 기호가 다시 나타납니다. 이게 도움이 되길 바란다.
새로운 Microsoft Visual Studio 2015 업데이트 3 업데이트 (KB3165756) 는 ASP.NET Core 응용 프로그램의 cshtml 파일에 포함 된 C # 코드의 로컬 변수를 검사하려고하는 경우 중단 점 문제를 해결했습니다.
1 단계, 명백한 것을 배제하십시오 :
2 단계 C ++ 프로젝트의 경우 :
다음 프로젝트 속성을 확인하십시오.
1 단계를 다시 수행하십시오.
__debugbreak ()를 추가 할 수 있습니다. 이 문장은 중단하려는 소스 파일에 있어야합니다.
2 단계 C # 프로젝트의 경우 :
다른 머신에서 솔루션을 열어보십시오. 다른 머신에서 중단 점을 바인딩 할 수 있으면 VS 또는 OS에 문제가 있음을 의미 할 수 있습니다.
3 단계 : VS가 최신인지 확인하십시오.
VS2013 RTM과 VS2015 업데이트 1 및 업데이트 2에서 이와 같은 문제에 대한보고가있었습니다.
VS에서 도구 / 확장 및 업데이트 / 업데이트 / 제품 업데이트로 이동하여 실행중인 버전을 확인하십시오. 업데이트가 필요한 경우 업데이트가 나타납니다.
4 단계, OS가 최신인지 확인하십시오.
마지막으로 Win 10 OS를 실행하는 경우 빌드 14251에 존재하는이 문제와 관련하여보고 된 버그가 있습니다.이 문제는 빌드 14257 이상에서 해결되었습니다.
방금 비슷한 문제가 발생하여 여기서 직면 한 문제에 대한 답변이 없습니다. 그러나 질문과 달리 바인딩에 실패했다는 메시지는 절대받지 않습니다. 중단 점은 절대로 맞지 않습니다. 잘하면 이것은 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가 계약에 따라 보내지 말았어야한다는 말은 아닙니다. 나쁜 기록으로 인해 중단 점이 발생하지 않았다는 것입니다.
디버깅을 활성화하려면 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"/>
이전 답변을 살펴 보았고 @ 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
그러나 나는 이것이 최선의 방법이 아니라고 생각합니다.