Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Fast, simple test app for ADO.NET Data Services
https://blogs.msdn.com/marcelolr/archive/2008/01/02/fast-simple-test-app-for-ado-net-data-services.aspx
Mike Taulty 的Weblog
https://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2007/12/19/10028.aspx
以及Christian Weyer的Weblog
https://blogs.thinktecture.com/cweyer/archive/2007/12/11/415057.aspx
都有讨论Astoria ServiceHost在一个控制台的应用中,因为目前版本的Astoria CTP只提供了WebHosting/ASP.NET(模式),当然这非常容易应用在Web开发的环境中,看了他们的Weblog,自己测试了一下,果然是可行的。
1.先创建一个控制台的应用(VS2008)
2.增加一个ADO.NET Entity Data Model(或者是加入一个已经创建EDM Lib的项目引用) 创建一个ObjectContext,比如:BlogEntities
3.创建SvcImp的cs文件,实现WebDataService (BlogSvcImp.cs)
using System;
using System.Web;
using System.Collections.Generic;
using System.ServiceModel.Web;
using System.Linq;
using Microsoft.Data.Web;
using BlogModel;
namespace SelfHostSvc
{
public class BlogSvcSelfHost : WebDataService<BlogEntities>
{
public static void InitializeService(IWebDataServiceConfiguration config)
{
config.SetResourceContainerAccessRule("*", ResourceContainerRights.AllRead);
// Example for service operations
// config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All);
}
}
}
4.修改App.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<services>
<service name="SelfHostSvc.BlogSvcSelfHost" behaviorConfiguration="webHttp_SelfHost">
<host>
<baseAddresses>
<add baseAddress="https://localhost:9909/DataServices/SelfHost/BlogSvc"/>
</baseAddresses>
</host>
<endpoint
address=""
binding="webHttpBinding"
contract="Microsoft.Data.Web.IRequestHandler" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="webHttp_SelfHost">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<connectionStrings>
<add name="BlogEntities" connectionString="metadata=.\Blogs.csdl|.\Blogs.ssdl|.\Blogs.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\sqlexpress;Initial Catalog=Blog;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
5.控制台Main应用中增加下面的代码
static void Main(string[] args)
{
WebServiceHost host = new WebServiceHost(typeof(BlogSvcSelfHost));
host.Open();
Console.WriteLine("Service starting....\nPress Enter to exit");
Console.ReadLine();
host.Close();
}
之后就可以启动这个控制台应用。在IE浏览器中访问下面的地址
https://localhost:9909/DataServices/SelfHost/BlogSvc
接着可以通过简单的REST命令简单访问服务
https://localhost:9909/DataServices/SelfHost/BlogSvc/Blogs
用下面的链接获得Astoria服务的元数据信息
https://localhost:9909/DataServices/SelfHost/BlogSvc/$metadata
从上面看出,通过控制台的Self-Hosting方式也可以实现Astoria Service,Astoria提供了一个通用的数据服务的架构和基础工具,借助.NET 3.5的WCF功能,你可以更加方便的开发自己的Internet数据服务。
Comments
- Anonymous
August 11, 2008
之前有写一篇关于ADO.NET Data Services hosting在一个控制台程序中的做法。 详细见--ADO.NET Data Services 的Self-Hosting实例 http://blogs.msdn.com/ccboy/archive/2008/01/12/ado-net-data-services-self-hosting.aspx - Anonymous
August 17, 2008
之前有写一篇关于ADO.NET Data Services hosting在一个控制台程序中的做法。 详细见--ADO.NET Data Services 的Self-Hosting实例 http:/