文档章节

ServiceStack 项目实例 001 建立项目结构

AA海纳百川
 AA海纳百川
发布于 2016/10/02 11:34
字数 630
阅读 76
收藏 2

行业解决方案、产品招募中!想赚钱就来传!>>>

     ServiceStack 用于服务开发,可以为各种形式的网站、软件、APP等提供数据服务,可以提供REST,WebService以及二级制数据形式的服务。

 

    下面根据我们具体项目要求,说一下建立项目的方式:

 

    建立项目

 

    首先需要建立两个项目,一个为ServiceStack的项目,一个是MVC的项目。

    1 建立空站点,用于放置SS项目:

     选Web项目   ——→    ASP.net Web Application  ——→  空站点。

    打开包管理器控制台,如果没有显示,可以在“查看-其它窗口”下找到这个窗口,输入命令:

     Install-Package ServiceStack -Version 3.9.71 

    在同一解决方案下,添加新的MVC项目 注意在MVC站点取消权限验证

    4 在解决方案上,点右键,选择包管理器找到 ServiceStack webservice framework:...... 的项,点管理按钮

选中MVC项目上的对勾,组件包管理器会自动导入SS组件包到项目中。

     或者在包管理控制台中,选中MVC项目,再执行一次 

     Install-Package ServiceStack -Version 3.9.71 

 

       配置框架服务

       

      1 在SS项目的web.config 中 添加

     

<system.webServer>

    <validation validateIntegratedModeConfiguration ="false" />

    <handlers >

      <add path ="*" name= "ServiceStack.Factory" type ="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb ="*" preCondition ="integratedMode" resourceType ="Unspecified" allowPathInfo ="true" />

    </handlers >

  </system.webServer>

 

 

添加完成后的web.config

 

<configuration>

  <system.web>

    <compilation debug="true" targetFramework="4.5" />

    <httpRuntime targetFramework="4.5" />

  </system.web>

 

  <system.webServer>

    <validation validateIntegratedModeConfiguration ="false" />

    <handlers >

      <add path ="*" name= "ServiceStack.Factory" type ="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb ="*" preCondition ="integratedMode" resourceType ="Unspecified" allowPathInfo ="true" />

    </handlers >

  </system.webServer>

</configuration>

 

 

   2  在SS项目中添加新项 --- 全局配置文件(Global.asax)

 

   3  在全局配置文件中加入一个服务配置类,位于

public class Global : System.Web.HttpApplication 类中,  

和 protected void Application_Start(object sender, EventArgs e) 类同级。

 

 

public class WebSiteAppHost : AppHostBase

        {

            public WebSiteAppHost()

                : base("WebSite", typeof(SubmissionService).Assembly)

            { }

            public override void Configure(Container container)

            {

 

                // 数据库配置  (使用数据处理工厂)

                var DbFactory = new OrmLiteConnectionFactory(

    "Data Source=.;Initial Catalog=RobotsMaster; Integrated Security=SSPI",  SqlServerDialect.Provider);  

 

                OrmLiteConfig.DialectProvider = new SqlServerOrmLiteDialectProvider();

 

                //DbFactory.Run(db => db.CreateTable<MasterRecord>(overwrite: false));

 

                container.Register<IDbConnectionFactory>(DbFactory);

 

                container.RegisterAutoWired<DataRepository>();

 

                //Plugins.Add(new CorsFeature());

 

                ///等价于:Plugins.Add(new CorsFeature(allowedOrigins: "*", allowedMethods: "GET, POST, PUT, DELETE, OPTIONS",

                ///allowedHeaders: "Content-Type",   allowCredentials: false));

            }

        }

 

   其中SubmissionService 是自定义的REST服务(API模式),可以改成自己需要的名称

 

DataRepository是数据服务(数据仓库),名称用默认即可

 

 

数据库连接配置修改var DbFactory = new OrmLiteConnectionFactory(

"Data Source=.;Initial Catalog=RobotsMaster; Integrated Security=SSPI", SqlServerDialect.Provider); 中的连接串

 

 

 

OrmLiteConfig.DialectProvider = new SqlServerOrmLiteDialectProvider()  指定数据库类型,SS支持多种数据库

 

 

   4 在protected void Application_Start(object sender, EventArgs e) 类中加入

 

new WebSiteAppHost().Init();

 

5  把SS项目设为启动项,现在就可以启动服务,查看服务说明界面。

 

wKioL1R91VjhtVKQAAL40Pc2bpw563.jpg

 

 

——————————————————————————————————————————————————————

主要参考资料 :  Getting Started with ASP.NET MVC, ServiceStack and Bootstrap

AA海纳百川
粉丝 6
博文 53
码字总数 4829
作品 0
南宁
程序员
私信 提问
加载中
请先登录后再评论。
Netty那点事(三)Channel与Pipeline

Channel是理解和使用Netty的核心。Channel的涉及内容较多,这里我使用由浅入深的介绍方法。在这篇文章中,我们主要介绍Channel部分中Pipeline实现机制。为了避免枯燥,借用一下《盗梦空间》的...

黄亿华
2013/11/24
2W
22
浅入浅出Android(003):使用TextView类构造文本控件

基础: TextView是无法供编辑的。 当我们新建一个项目MyTextView时候,默认的布局(/res/layout/activity_main.xml)中已经有了一个TextView: <TextView 运行效果如下: 修改其文本内容...

樂天
2014/03/22
593
1
beego API开发以及自动化文档

beego API开发以及自动化文档 beego1.3版本已经在上个星期发布了,但是还是有很多人不了解如何来进行开发,也是在一步一步的测试中开发,期间QQ群里面很多人都问我如何开发,我的业余时间实在...

astaxie
2014/06/25
2.7W
22
5分钟 maven3 快速入门指南

前提条件 你首先需要了解如何在电脑上安装软件。如果你不知道如何做到这一点,请询问你办公室,学校里的人,或花钱找人来解释这个给你。 不建议给Maven的服务邮箱来发邮件寻求支持。 安装Mav...

fanl1982
2014/01/23
1.2W
6
mvc框架--Razor

Razor 是一个轻巧而优雅的servlet mvc框架 # 又一个轮子? no,写就她是为了证实我个人的某些想法,并在这个过程中练练手,这两种冲动碰撞在一起,自然而然地产生了Razor # Razor的现在和未来...

dtubest
2013/01/25
2.9K
0

没有更多内容

加载失败,请刷新页面

加载更多

在后CoVID-19世界中,网络安全将如何变化?

随着世界向云迁移,围绕企业如何解决钓鱼***和勒索软件***的争论不断。 作者:Cassie 编译来源:千家网|2020-08-03 11:13 收藏 分享 随着世界向云迁移,围绕企业如何解决钓鱼***和勒索软件*...

osc_56801rv0
9分钟前
0
0
2020黑帽大会的11大网络安全工具

在8月1日至8月6日举行的线上虚拟活动上,将有130多位安全大咖展示数十种新工具、框架和方法,以保护软件、固件、硬件和移动系统免受各种威胁的侵害,以下是我们精选出的十一大安全工具。 作者...

osc_flwkfqx5
10分钟前
0
0
课程表1(广度搜索之拓扑排序)

你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。 在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1] 给...

osc_yf4y1952
11分钟前
0
0
如何检查SQL Server表中是否存在列? - How to check if a column exists in a SQL Server table?

问题: I need to add a specific column if it does not exist. 如果它不存在,我需要添加一个特定的列。 I have something like the following, but it always returns false: 我有类似以下......

javail
12分钟前
0
0
NB-IOT覆盖范围有多大 NB-IOT的强覆盖是怎么实现的

  NB-IoT技术自出现以来就以其强大的覆盖范围和通讯距离长而受到广泛的欢迎,发展到现在已经成为万物互联网络中的一个重要分支。那么NB-IoT覆盖范围到底有多大,是怎么来衡量其覆盖能力?  ...

osc_yozufu01
12分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部