日期:2014-05-18  浏览次数:20737 次

Wcf data Service 如何自承载?
MSDN地址:
http://msdn.microsoft.com/zh-cn/library/cc668805.aspx  

Wcf data Service 除IIS承载方式外,号称能像其它WCF服务一样自托管。但我从未测试成功,网上

也找不到成功的例子,请问是不是我理解有误?

  因为我的WCF客户端都是通过发现代理去查找真正的WCF服务,data service只是众多服务之一。所

以我希望能将data service像普通WCF服务一样,去“发现服务”上注册,以供用户动态调用。

  当然data service是以httpBinding 方式。

  在我手动编码过程中,还有个有趣的现象:

C# code

   public class SchoolEntityService : DataService<SchoolEntities>
    {
        // This method is called only once to initialize service-wide policies.
        public static void InitializeService(DataServiceConfiguration config)
        {            
            // TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.
            // Examples:
            config.SetEntitySetAccessRule("*", EntitySetRights.All);
            config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
            config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
         }
    }

        static void Main(string[] args)
        {
            //定义服务
            using (ServiceHost host = new ServiceHost(typeof(SchoolEntityService)))
            {
                host.Open();
                Console.WriteLine("WCF服务已启动,按任意键退出!");
                Console.ReadKey();
                host.Close();
            }
        }




  上述代码的 ServiceHost host = new ServiceHost(typeof(SchoolEntityService)) 会报找不到类型或命名空间的错误。一直不明白。

   



------解决方案--------------------
帮你顶http://www.cnblogs.com/2018/archive/2010/10/25/1860746.html