2011-09-24 3 views
0

요즘 실버 라이트/wcf ria 서비스에 익숙해지기 위해 실버 라이트 비즈니스 응용 프로그램 템플릿을 사용하고 있습니다. 나는 해결할 방법을 모른다는 이상한 문제에 봉착했다.Silverlight 응용 프로그램에서 Asp.net 프로필 속성이 올바르게 serialize되지 않았습니다.

지금까지 내가 수행 한 모든 작업은 "AvatarURL"이라는 새로운 프로필 속성이 만들어졌으며, 기본 개념은 Avatar tutorial에서 비롯되었으며 FriendlyName 속성은 제거되었습니다. 차이점은 사용자가 파일에 바이트 배열을 쓰는 대신 등록 할 때 AvatarURL 속성을 기본값 (~/Images/Default.jpg)으로 설정한다는 것입니다. 그래서 나는 등록 단계에서 파일을 찾거나 웹캠 또는 그와 비슷한 것을 꺼내지 않을 것입니다.

LoginStatus.xaml 등을 변경하고 로그인 한 후에 이미지가 그 자리 표시 자에 표시되지 않습니다. LoginStatus.xaml에서 'Authentication_LoggedIn'이벤트 핸들러를 밟았으며 어떤 이유로 사용자의 AvatarURL 속성이 일부 값일뿐입니다. 데이터베이스의 값이 "http : // localhost : 52878/Images/Default.jpg"인 경우 내가 stepthrough 할 때 얻는 가치는 "http : // localhost : 528"입니다.

나는 데이터베이스 값을 두 번 점검하여 올바른지 확인했습니다. XAML 이미지의 소스 값을 수동으로 입력하면 (http : // localhost : 52878/Images/Default.jpg) 아무런 문제가없는 이미지가 표시됩니다. 그것은 실버 라이트 애플 리케이션과 asp.net 웹 사이트 프로젝트 사이의 의사 소통 사이에 문제가있는 것으로 보입니다. 사실 나는 단지 솔루션을 아주 조금만 변경했기 때문에 2 개의 프로젝트를 하나로 묶는 코드는 작성하지 않았으므로이 문제를 해결하기 위해 어디에서 아이디어를 찾을 것 인 지 전혀 모릅니다.

필요한 경우 일부 코드를 게시 할 수 있지만 기본 비즈니스 템플릿과 크게 다르지 않습니다.

미리 감사드립니다.

답변

0

저장된 항목 (http : // localhost : 528)은 정확히 20 자이고 데이터베이스의 텍스트 값에 대한 일반적인 기본 길이는 20 자이므로 크기 제한은 실제로 데이터베이스 테이블에있는 것으로 추측합니다. 입력 된 값이 잘 렸습니다.

데이터베이스 스키마를 확인하고 그렇지 않은 경우 알려주십시오.

+0

프로필 속성의 열은 aspnet_regsql.exe 응용 프로그램에 의해 생성됩니다. 그것은 데이터 형식이 ntext이고 편집 할 수없는 '크기'가 6000이라고 말합니다. 또한 솔루션 탐색기를 사용하여 테이블 데이터를 볼 때 전체 URL이 열에 표시됩니다. – SilverX

+0

아 PropertyNames 열의 값을보고 있습니다. 언뜻보기에는 길이를 정의하는 것으로 보이는 AvatarURL : S : 0 : 20이 나와 있습니다. 그렇다면 .. 어떻게 바꿀 수 있는지 아십니까? – SilverX

+0

이상하게도. Uri 클래스를 사용하여 URL을 작성한 다음 uri.AbsoluteUri를 사용하여 URL 문자열을 가져 와서 프로파일 제공자에게 전달했습니다. 올바른 값이 데이터베이스에 삽입되었지만 적절한 길이를 기록하지 못했습니다. 그 후로는 실제 문자열을 사용하도록 전환했으며, 제대로 작동하는 것으로 보입니다 ... wierd. – SilverX

관련 문제