首页 > 代码库 > ServiceStack 项目实例 001 建立项目结构

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


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


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


    建立项目


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

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

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

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

     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



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