이미지 파일에서 특정 메타 데이터를 추출해야하는 ASP.NET MVC 응용 프로그램이 있습니다. 나는 현재 다음과 같이이 작업을 수행하기 위해 Windows API 코드 팩을 사용하고 있습니다 :Windows API 코드 팩을 통해 유니 코드 문자가 포함 된 메타 데이터를 가져 오는 경우 응용 프로그램이 충돌 함
로컬var imageShellObject = ShellObject.FromParsingName(filePath);
var title = imageShellObject.Properties.System.Title;
는 내 PC에,이 잘 작동 : 그것은 예상대로 파일의 제목 속성을 포함하는 문자열을 가져옵니다. 그러나 웹 서버에 배포 된 경우 w3wp.exe는 두 번째 코드 줄에 도달하면 충돌하려고합니다. LINE SEPARATOR (U + 2028) 또는 LATIN SMALL LETTER THORN (U + 00FE)과 같은 유니 코드 문자가 포함 된 경우). 예외를 잡을 방법이 없으므로 문제가 무엇인지 판단 할 수 없으며 오류가 발생해도 정상적으로 실패 할 수는 없습니다. IIS 프로세스가 즉시 중단됩니다. 서버에서이 표준 비주얼 스튜디오
An unhandled win32 exception occurred in w3wp.exe [3708]. Just-In-Time debugging this exception failed with the following error: No installed debugger has Just-In-Time debugging enabled. In Visual Studio, Just-In-Time debugging can be enabled from Tools/Options/Debugging/Just-In-Time. Check the documentation index for 'Just-in-time debugging, errors' for more information.
는 윈도우 오류 로그 중 오류에 대한 세부 사항을 표시하지 않습니다 진술 적시에 디버거 대화 상자를 팝업, 그냥 응용 프로그램 오류의 수는 발생 표시 모듈 propsys.dll, combase.dll 및 KERNELBASE.DLL에 대한 w3wp.exe
이상한 점은 응용 프로그램을 로컬에서 실행하면 동일한 파일을 사용하여 올바르게 작동한다는 것입니다. 서버에 유니 코드 관련 내용이 누락되었다는 인상을 받았지만 서버의 탐색기에서 파일 속성을 살펴보면 유니 코드 문자가 잘 표시되므로 왜 상상할 수 없습니다.
여기 무슨 일 이니?