우리는 매우 이상한 문제로 직면하고 있습니다. 우리는 IIS 6.1에서 호스팅되는 Silverlight 5 응용 프로그램을 위해 엔티티 프레임 워크 4 및 ria 서비스를 사용하고 있습니다. 오랜 시간 동안 모든 것이 원활하게 실행되지만 때로는 응용 프로그램이 이벤트 로그에 다음 오류 메시지와 함께 실패합니다.생산 코드에서 "엔터티에 키가 정의되지 않았습니다"오류가 발생했습니다.
WebHost가 요청을 처리하지 못했습니다.
발신자 정보 : System.ServiceModel.Activation.HostedHttpRequestAsyncResult/56703158
예외 : System.ServiceModel.ServiceActivationException : 서비스 '/Services/EcoFleet-DomainServices-Repository-EcofleetRepository.svc' 동안 예외로 인해 활성화 할 수 없습니다 편집.
예외 메시지는 DomainService의 엔터티 'DeviceData' 'EcofleetRepository'에 정의 된 키가 없습니다. DomainService 작업에 의해 에 노출 된 엔터티 유형에는 KeyAttribute와 함께 표시되는 적어도 하나의 공용 속성 이 있어야합니다. ---> System.InvalidOperationException : DomainService 'EcofleetRepository'의 엔터티 'DeviceData'에 키가 정의되어 있지 않습니다. DomainService 작업에 의해 노출 된 엔터티 유형 에는 KeyAttribute가 표시된 공용 속성이 하나 이상 있어야합니다. System.ServiceModel.DomainServices.Server.DomainServiceDescription.CreateDescription에서 System.ServiceModel.DomainServices.Server.DomainServiceDescription.Initialize()
에서 System.ServiceModel.DomainServices.Server.DomainServiceDescription.ValidateEntityTypes()
에서
(유형 System.Serv에서 System.ServiceModel.DomainServices.Server.DomainServiceDescription.GetDescription (유형 domainServiceType)
에서 System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func
2 ValueFactory의)
에서 domainServiceType)
System.ServiceModel.DomainServices.Hosting.DomainServiceHostFactory.CreateServiceHost에서 iceModel.DomainServices.Hosting.DomainServiceHost..ctor (유형 domainServiceType 우리당 [] baseAddresses)
(유형 ServiceType 자리 우리당 [] baseAddresses)
는 system.serviceModel에서 .Activation.ServiceHostFactory.CreateServiceHost (문자열 constructorString 우리당 [] baseAddresses)
System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService (문자열 normalizedVirtualPath, eventTraceActivity eventTraceActivity)
에서 System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService에서 (ServiceActivationInfo System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable (문자열 normalizedVirtualPath, EventTraceActivity eventTraceActivity)
--- 내부 예외 스택 추적의 끝 --- System.Runtime.AsyncResult에서
에서 serviceActivationInfo, EventTraceActivity eventTraceActivity)
. End [TAsyncResult] (IAsyncResult result)
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.종료 (IAsyncResult를 결과) 프로세스 이름 : W3WP
프로세스 ID는 : 2300
응용 프로그램은 계속 응답,하지만 실체는 서버에서로드 할 수 없습니다. 사이트를 중지하고 시작한 후에 모든 것이 다시 작동합니다.
이 경우 (DeviceData) 엔티티는 데이터베이스 테이블이며 은에 키가 있으며 아무리 엔티티가 실패하더라도 무작위 인 것으로 간주됩니다. 또한 컴파일 타임에 "정의되지 않은 키"오류 만 볼 것으로 예상됩니다. 누군가가 문제가 무엇인지, 문제를 해결하는 방법에 대한 단서가 있습니까?
나는 서비스가 싫다. 그러나 그것을 사용하십시오. 컴파일 시간이 매우 느리고 많은 제한이 있습니다. 코드 생성기를 사용한다면'[Key]'가 실제로 항목을 생성하고 있는지 확인하십시오. 나는't4'를 거의 사용하지 않습니다. EDMX는 이런 종류의 문제에 더 효과적입니다. –
그것은 속성을 생성하지 않습니다,하지만 난 왜 그것이 무작위로 휴식을 마술처럼 사이트를 다시 시작하여 스스로를 일으킬 것이라고 이해가 안돼 ...하지만 난 시도하고 발전기를 변경하고 볼 수 있습니다 그것은 그것을 고친다. – sondergard