나는 예리한 아키텍처 프로젝트를 가지고 있으며, 이것 역시 ApplicationServices를 사용하고 있습니다.S # arp에서 wcf 서비스 사용하기 아키텍처 프로젝트
wcf 서비스를 사용할 winform 클라이언트를 제공해야합니다. wcf 서비스는 차례대로 ApplicationServices를 사용합니다. 아직 winform 클라이언트에서 작업을 시작하지는 않았지만 wcf 서비스를 작업 중입니다.
Northwind 샘플 다음. 내 솔루션에서 "Wcf Service library"프로젝트와 "Wcf Service Application"프로젝트를 만들었습니다.
나는 wcf를 처음 사용하지만 모든 기본 사항을 알고 과거에 많은 웹 서비스를 사용해 왔습니다. 나는 다음과 같은 질문을 가지고있다 : -
1) 나는 왜 두 개의 프로젝트, wcf 라이브러리 및 wcf 응용 프로그램의 필요성을 알고 싶다?
2) Northwind 샘플의 ITerritoriesWcfService 인터페이스가 ICloseableAndAbortable을 상속 받았다는 것을 알아 챘습니다.
public interface ITerritoriesWcfService : ICloseableAndAbortable
ICloseableAndAbortable의 목적은 무엇입니까?
3) 다른 클래스 TerritoriesWcfServiceClient
public partial class TerritoriesWcfServiceClient : ClientBase<ITerritoriesWcfService>, ITerritoriesWcfService
이 클래스의 목적은 무엇인가있다?
4) TerritoriesService.svc 파일에서 Factory = "SharpArch.Wcf.NHibernate.ServiceHostFactory, SharpArch.Wcf"의 용도는 무엇입니까? 일반적으로 일반적인 wcf 서비스 응용 프로그램에서는 codebehind 특성을 사용하지만 실제로 .cs 파일은 int wcf 서비스 라이브러리 프로젝트에 있기 때문에 다음 코드가 수행하는 작업을 알고 싶습니다.
<%@ ServiceHost Language="C#" Debug="true"
Service="Northwind.Wcf.TerritoriesWcfService"
Factory="SharpArch.Wcf.NHibernate.ServiceHostFactory, SharpArch.Wcf" %>
위의 팩토리 속성을 제거하더라도 서비스 응용 프로그램 프로젝트를 실행하고 WcfTestClient 유틸리티를 사용하여 서비스를 테스트 할 수 있습니다.
6) 서비스를 실행하고 WcfTestClient를 사용하는 경우 두 번째 호출에서 저장소에 액세스하는 두 번 메서드를 실행하면 두 번째 호출에서 ObjectDisposedException이 발생합니다.
{"Session is closed!\r\nObject name: 'ISession'."}
저는 NHibernate 세션이 첫 번째 호출 후에 처리 될 것으로 생각합니다. 각 통화마다 어떻게 재 초기화 할 수 있습니까? 가장 좋은 방법을 알고 싶습니다.
7) 또한 나는 Northwind.Wcf.Web 프로젝트를 실행하고 디렉토리 목록 화면에 TerritoriesService.svc 파일을 클릭하면, 나는 다음과 같은 오류를 얻을
{ "방법은 유형에 '생성' 'Northwind를 '어셈블리에서'.Data.NHibernateMaps.AutoPersistenceModelGenerator Northwind.Data, 버전 = 1.0.0.0, 문화 = 중립, PublicKeyToken = null이가 '구현을 가지고 있지 않습니다. ""Northwind.Data.NHibernateMaps.AutoPersistenceModelGenerator "}
내가 왜이 오류를 던지는 지 이해할 수 없습니다. 이미 메서드가 있고 Northwind.Web도 잘 작동합니다. 나빌
http://groups.google.com/group/sharp-architecture/browse_thread/thread/1f2d8910d2b22763?hl=ko – nabeelfarid