2012-03-28 5 views
9

.Net dll Newtonsoft.Json in my C# TBB을 사용하여 구성 요소를 처리하고 Json 데이터를 생성합니다. 나는이 DLL을 GAC[Global Assembly Cache]에 이미 추가했으며 잘 작동한다. 하지만 가끔은 작동하지 않습니다와 나는 다음과 같은 오류가 게시하면서 :Tridion : 게시하는 동안 .Net dll을로드 할 수 없습니다.

JScriptException: Expression 'RenderComponentPresentation()' had error 'Could not load file or assembly 'Newtonsoft.Json, Version=4.0.5.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.'

을하지만 Tridion에서 페이지를 미리 볼 때 그것을 잘 작동합니다. 이 문제를 해결하기 위해 Tridion Services을 다시 시작하고 다시 시작한 후에 페이지를 게시합니다. 그러나이 문제는 계속해서 다시 나타납니다. 이 문제를 영구적으로 해결할 방법이 있습니까?

최근 게시가 진행되는 과정에서 동일한 페이지를 다시 게시 할 때 문제가 재현 될 수 있습니다. 두 번째 게시 시도가 위의 오류를 반환했지만 첫 번째 게시 시도가 두 번째 게시 시도가 실패한 후 끝내고 Success을 반환했습니다. 왜이 이상한 행동인지.

+2

미리보기가 단일 스레드이고 게시/렌더링이 다중 스레드이므로이 문제는 스레딩 문제 일 수 있습니다. 얼마나 많은 렌더 스레드가 있습니까? 티에 문제가 계속 발생하는지 다시 테스트 해보고 재검사 해 볼 수 있습니까? 이렇게해도 문제가 해결되지는 않지만. 원인을 증명해. –

+1

당신은 Tridion SE 사이트에 커밋을 고려할 수 있습니다 - 이러한 질문은 거기에 많은 것이 적절합니다 : http://area51.stackexchange.com/proposals/38335/tridion?referrer=eo63snjNlUWNn9xqeeO2NA2 –

+0

안녕하세요 @ Sunil. 나는이 질문이 아직도 열려 있다는 것을 알아 차렸다. 아래 답변 중 하나라도 문제를 해결하는 데 도움이 되었습니까? 그렇다면 왼쪽의 큰 체크 표시를 클릭하여 대답을 수락 할 수 있습니까? –

답변

6

플랫폼이 제대로 설정되지 않은 경우가 있습니다. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 dll을 사용하기 위해 프레임 워크를 4.0 (또는 호환되는 모든 것)으로 설정하여 확인하십시오. 그런 다음 응용 프로그램을 닫고 다시 실행 해보십시오. 플랫폼이 .NET Framework 4 클라이언트 프로필로 설정되어있을 수 있습니다.

6

서비스를 다시 시작한 후에 더 좋은 결과를 얻지 못했다면, 이것이 NewtonSoft.Json이 의존하는 어셈블리에 관한 것이라고 생각했을 것입니다. 그러한 어셈블리가 있으면 GAC에 등록해야합니다. 게시자 프로세스에는 미리보기를 수행하는 Tridion 커널과 동일한 응용 프로그램 폴더 또는 프로빙 경로가있을 필요는 없습니다.

Chris가 말했듯이 어쩌면 이것이 스레딩 문제 일 수도 있지만 때로는 이런 종류의 이상 함이 메모리 부족으로 나타나기도합니다. 게시자 프로세스의 메모리 사용을 모니터링하여 누수가 있는지 확인할 수 있습니까?

+2

이 비슷한 생각을 가지고 있다면 환경이 여러 게시자를 통해 확장 될 가능성이있는 것입니다. 이 경우 CM/게시자 서버마다 GAC의 종속 어셈블리가 필요하며 나중에 서비스가 다시 시작됩니다. 그렇지 않으면 wierd가 계속 진행되고 있습니다. –

3

융합 로그 파일은 왜 실패했는지에 대한 자세한 정보를 제공 할 수 있습니다. 이 도구를 이미 사용 했습니까? 보다

Fuslogvw.exe (Assembly Binding Log Viewer)

기타 나는 .NET 4.0의 최신 JSON.NET 버전을 얻고 당신이 모든 서버를 게시에 대한 권리 버전을 배포 할 수 있도록하는 것이 좋습니다.