我有一個尖銳的體系結構項目,我也在其中使用ApplicationServices。在S#arp中使用wcf服務體系結構項目
需要提供一個使用wcf服務的winform客戶端。 wcf服務將依次使用ApplicationServices。我還沒有開始使用winform客戶端,但我正在開發wcf服務。
繼Northwind示例。我在我的解決方案中創建了「Wcf服務庫」項目和「Wcf服務應用程序」項目。
我是wcf的新手,但是我知道所有的基礎知識,並且在過去一直使用web服務。我有以下問題: -
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服務應用程序,我使用的代碼隱藏屬性,但由於實際的.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 Session會在第一次調用之後被拋棄。如何爲每次通話重新初始化,還是應該保持開放狀態?我想知道最佳做法?
7)另外,如果我運行Northwind.Wcf.Web項目,並單擊TerritoriesService.svc 文件目錄列表屏幕上,我得到以下錯誤
{「方法類型'生成「羅斯文.Data.NHibernateMaps.AutoPersistenceModelGenerator'from Northwind.Data,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'沒有實現。「:」Northwind.Data.NHibernateMaps.AutoPersistenceModelGenerator「}
我不明白爲什麼它拋出這個錯誤,當我已經有了方法和Northwind.Web正常工作了。
等待 納比爾
http://groups.google.com/group/sharp-architecture/browse_thread/thread/1f2d8910d2b22763?hl=zh_CN – nabeelfarid 2010-07-12 08:32:25