我有一个尖锐的体系结构项目,我也在其中使用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