<%@ Application Language=%> <script runat=> void Application_Start(object sender, EventArgs e) { Service.Host.TickServiceHost().Init(); } void Application_End(object sender, EventArgs e) { // 在应用程序关闭时运行的代码 } void Application_Error(object sender, EventArgs e) { // 在出现未处理的错误时运行的代码 } void Session_Start(object sender, EventArgs e) { // 在新会话启动时运行的代码 } void Session_End(object sender, EventArgs e) { // 在会话结束时运行的代码。 // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为 // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer // 或 SQLServer,则不引发该事件。 } </script>
添加ServiceStack网站集成配置
<?xml version=encoding=?> <!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <system.web> <compilation debug=targetFramework=/> </system.web> <!--Required for IIS 7 (and above) --> <system.webServer> <validation validateIntegratedModeConfiguration=/> <handlers> <add path=name=type=verb=/> <add path=name=type=verb=preCondition=resourceType=allowPathInfo=/> </handlers> </system.webServer> </configuration>
至此ServiceStack服务已经完成,运行程序可以看到界面如下,其中TicketRequest和TicketDeleteRequest可以理解成实际的调用方法,里面定义的参数可以理解成方法的请求参数,后续调用会继续讲解
整个项目解决方案的框架如下:
第二种创建方法比较简单,快速,利用ServiceStack官方提供的模板直接生成,具体操作方法如下:
1.打开VS,工具扩展和更新
2.搜索servicestack提供的组件
3.安装完成后创建新项目,来自模板
创建完成后的项目框架如下
5.改成我们所需要的
ServiceStack客户端调用
using ConsoleApplication1.model; using ServiceStack; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //客户端采用json数据格式 JsonServiceClient client1 = ); Console.WriteLine(); //TicketRequest 为请求的方法 List<TicketResponse> responseSearch = client1.Get<List<TicketResponse>>(new TicketRequest() { TicketId = 1 }); Console.WriteLine(responseSearch.Count); bool responseDelete = client1.Post<bool>(new TicketDeleteRequest() { TicketId = 1 }); Console.WriteLine(responseDelete); Console.WriteLine(); List<TicketResponse> responseSearch1 = client1.Get<List<TicketResponse>>(new TicketRequest() { TicketId = 1 }); Console.WriteLine(responseSearch1.Count); bool responseDelete1 = client1.Post<bool>(new TicketDeleteRequest() { TicketId = 1 }); Console.WriteLine(responseDelete1); Console.ReadLine(); } } }