개발 시스템에서 실행중인 TFS 2012 및 VS 2012로 업데이트 된 2008 서버가 실행됩니다. 이 솔루션은 MSBuild를 사용하여 서버에 테스트를 배포하고 실행합니다. 모든 테스트는 개발 상자를 통과하지만 로컬에 배포 된 WCF 서버 (IIS에서 호스팅 됨)를 호출하지 않는 테스트 만 실패합니다. 모든 서비스 호출의 예외는 다음과 같습니다.빌드 서버에서 단위 테스트에서 WCF 호출이 실패 함
> Test method TestProject.TestClass.TestMethod threw exception:
> System.ServiceModel.CommunicationObjectFaultedException: The communication object, System.ServiceModel.Channels.ServiceChannel,
> cannot be used for communication because it is in the Faulted state.
>
> Server stack trace:
> at System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan
> timeout)
> at System.ServiceModel.Channels.ServiceChannel.System.IDisposable.Dispose()
> Exception rethrown at [0
enter code here
NETWORK SERVICE에 적절한 권한이 있습니다. 전원이 켜져 있습니다. 이견있는 사람?
기술적으로 웹 서비스를 호출하는 경우, 이것들은 단위 테스트가 아니라고 주장 할 수 있습니다.하지만 그것은 요점입니다. WCF 추적을 살펴 보았습니까? 설정 파일의 WCF 추적 기능을 켜서 무엇이 있는지 알아보십시오. 또한 WCF를 타기 위해 어떤 URL을 사용하고 있습니까? localhost? 어쩌면 루프백 일 수도 있고 DNS 결의안 일 수도 있습니다. –
동의어, 이들은 실제로 단위 테스트가 아닙니다. 그래서 좀 더 발전했습니다. MSTest가 내 계정에서 로컬로 실행되지만 네트워크 서비스로 실행되는 빌드 서버에서는 사용 권한 문제 인 것 같습니다. WCF 추적은 SecurityNegotiationException을 표시합니다. 내 질문에 지금은 .... .... _ 어떤 권한이 없습니까? _ – Ian