安装或设置
你可以通过 3 种方式安装 ServiceStack:
- 完整的 Visual Studio 模板(自托管)
- 从头开始运行 ServiceStack Self 托管(Console App)
- 在 Asp.net MVC 中运行 ServiceStack。
完整的视觉工作室模板
你可以在此处找到有关这些的信息: https : //github.com/ServiceStack/ServiceStackVS 。
- 下载 servicestack Visual studio 插件: https : //visualstudiogallery.msdn.microsoft.com/5bd40817-0986-444d-a77d-482e43a48da7
- 在 visual studio 中启动一个新项目,然后选择其中一个模板。
从头开始(Selfhosted)
有关完整指南,请访问: https : //github.com/ServiceStack/ServiceStack/wiki/Self-hosting
建立:
- 制作控制台应用程序
- 通过 nuget:
Install-Package ServiceStack
安装 ServiceStack - 设置基本代码。ServiceStack 使用
AppHost
将所有东西组合在一起:
//This your main entry point of the application
public class AppHost : AppSelfHostBase {
public AppHost()
: base("HttpListener Self-Host", typeof(HelloService).Assembly) {}
public override void Configure(Funq.Container container) { }
}
//Run it!
static void Main(string[] args)
{
var listeningOn = args.Length == 0 ? "http://*:1337/" : args[0];
var appHost = new AppHost()
.Init()
.Start(listeningOn);
Console.WriteLine("AppHost Created at {0}, listening on {1}",
DateTime.Now, listeningOn);
Console.ReadKey();
}
现在你可以开始开发 api 服务了。
Mvc 整合
有关完整的 Mvc 集成指南: https : //github.com/ServiceStack/ServiceStack/wiki/Mvc-integration
首先下载你的 nuget 包:Install-Package ServiceStack.Mvc
设置 ServiceStack Apphost
public class AppHost : AppHostBase
{
public AppHost() : base("MVC 4", typeof(MyServices).Assembly) {}
public override void Configure(Container container)
{
SetConfig(new HostConfig {
HandlerFactoryPath = "api"
});
ControllerBuilder.Current.SetControllerFactory(
new FunqControllerFactory(container));
}
}
//Bootstrap your appHost through MVC Global.asax:
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
new AppHost().Init();
}
}
现在要运行 ServiceStack 服务,我们可以添加 web.Config 以使 ServicStack 在某个路径下运行,例如:/api/*
<location path="api">
<system.web>
<httpHandlers>
<add path="*" type="ServiceStack.HttpHandlerFactory, ServiceStack"
verb="*"/>
</httpHandlers>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<add path="*" name="ServiceStack.Factory"
type="ServiceStack.HttpHandlerFactory, ServiceStack" verb="*"
preCondition="integratedMode"
resourceType="Unspecified" allowPathInfo="true" />
</handlers>
</system.webServer>
</location>