2011-04-18 3 views
1

WinForms 앱과 웹 서비스로 구성된 .NET 4 VS2010 솔루션을 상속 받았습니다. 웹 서비스 복사본을 실행하는 서버에 액세스 할 수는 없지만 웹 서비스 코드는 물론 웹 서비스에 액세스하는 프로젝트를 실행, 디버그, 업그레이드 및 테스트해야합니다. 그래서 두 프로젝트를 변경할 수있는 프로젝트를 변경하기위한 최선의 전략을 무엇서버없이 .net 웹 서비스를 시뮬레이션하는 가장 좋은 전략은 무엇입니까?

, 테스트 로컬로를 배포

나중에, 나는 또한 신속하게 내 로컬 프로젝트에서 배포 된 웹 서비스와 코드 사이를 전환 할 그런 다음 웹 서비스가 테스트됩니까? 문제가 발견되면 디버깅을 위해 "로컬"모드로 다시 전환하고 싶습니다.

감사 팀!

답변

6

가장 쉬운 방법은 Visual Studio에서 서비스를 로컬로 호스팅하고 서비스 URL을 변경하여 프로덕션 서비스와 로컬 서비스 간을 전환하는 것입니다. #if#else 지시문을 사용하여 디버그 및 릴리스 모드를 확인하여 서비스 간을 자동으로 전환 할 수 있습니다.

인터페이스를 사용하여 서비스 스텁을 제공 할 수도 있습니다. 이것은 또한 단위 테스트를 더 쉽게 만듭니다.

+0

고마워요! 이것은 웹 서비스 소비자 winforms 프로그램과 웹 서비스 자체의 격리를 제안합니다. 현재 winforms 프로그램에는 app.config의 로컬 호스트 주소로 확인되는 웹 서비스 프로젝트에 대한 웹 참조가 있습니다. 그들은 둘 다 같은 해결책에 있습니다. 그러나 .wsdl 파일과 자동 생성 reference.vb의 대상은 원격 서버의 IP 주소로 남아 있습니다. 그것은 웹 서비스와 함께 보인다, 대상 URL은 여러 파일 사이에 흩어져있다. –

+0

또한 Web 참조가 자동으로 WinForms app.config의 ApplicationSettings에 배치되므로 거기에 #IF를 사용할 수 없습니다. 프로젝트를 다른 솔루션으로 분리하는 것이 실제로 가장 좋은 상태 일 수 있습니다. –

1
  • 호스트 웹 IIS에서 서비스 나 웹 서버
  • 의 주소를 저장하기 위해 (카시니)
  • 사용 의 app.config 로컬 개발 웹 서버를 사용하여 빌드를 사용하는 코드를 얻기 app.config를 기반으로 웹 서비스의 끝점
  • web.config에서 웹 서버 주소를 변경하여 서버를 전환합니다.
관련 문제