程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 使用RpcLite構建SOA/Web服務(Full .Net Framework),rpclitesoa

使用RpcLite構建SOA/Web服務(Full .Net Framework),rpclitesoa

編輯:關於.NET

使用RpcLite構建SOA/Web服務(Full .Net Framework),rpclitesoa


使用RpcLite構建SOA/Web服務(Full .Net Framework)

SOA框架系列

1. 使用RpcLite構建SOA/Web服務

2. 使用RpcLite構建SOA/Web服務(Full .Net Framework)

 

繼前一篇文章《使用RpcLite構建SOA/Web服務》已過去好幾個月。在這幾個月裡對RpcLite作了很多修改如:.Net Core的支持、Fluent API方式配置、Monitor、Filter等功能。

 

前一篇文章介紹了使用RpcLite的基本用法,在文章中介紹的配置方式為配置文件使用起來比較麻煩。本文配置使用Fluent API方式,在.Net Core中可以完全不使用配置文件,在Asp.Net中僅需要添加一個HttpModule。

 

創建服務端

Full .Net Framework中現只支持Host到ASP.NET中。

創建服務包括以下步驟:

  • 創建Web Application工程
  • 添加RpcLite引用
  • Web.config添加RpcHttpModule
  • 創建服務契約接口
  • 通過實現服務契約接口創建服務類
  • 在Global.asax中初始化RpcLite

創建Web Application工程

  • 打開Visual Studio 2015
  • 打開菜單File ‣ New ‣ Project...
  • 在左邊的菜單中選擇 Templates ‣ Visual C# ‣ Web
  • 在項目類型中選擇 ASP.NET Web Application (.Net Framework)
  • 確保目標Framework版本為 .NET Framework 4.0 或更高
  • 填寫項目名稱HelloRpcLiteService點Ok

添加RpcLite引用

添加引用有兩種方式:直接下載dll然後引用、通過NuGet添加,其中通過NuGet添加簡單方便,本文以此方式為例。 通過NuGet添加也有兩種方式:圖形界面或命令行

命令行

  • 打開菜單Tools ‣ NuGet Package Manager ‣ Package Manager Console
  • 運行 Install-Package RpcLite

圖形界面

  • 在Solution Explorer中右擊HelloRpcLite,選擇Manage NuGet Packages...
  • 在NuGet頁面中選擇Browse Tab頁,然後搜索RpcLite
  • 在搜索結果中安裝RpcLite

Web.config添加RpcHttpModule

默認情況下添加RpcLite包依賴後Web.Config會自動添加,若已自動添加請忽略本小節的操作 在集成管道模式和經典管道模式中添加HttpModule方式不同,本文以現在用得最多的集成管道模式說明

在configuration/system.webServer節點下添加 <add name=”RpcLite” type=”RpcLite.Service.RpcHttpModule, RpcLite.NetFx” />

完整配置如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>
            <modules>
                    <add name="RpcLite" type="RpcLite.Service.RpcHttpModule, RpcLite.NetFx" />
            </modules>
    </system.webServer>
</configuration>

 

創建服務契約接口

  • 新建類文件IProductService.cs
  • 輸入以下內容
namespace HelloRpcLiteService
{
        public interface IProductService
        {
                string GetDateTimeString();
        }
}

 

通過實現服務契約接口創建服務類

  • 新建類文件ProductService.cs
  • 輸入以下內容
 
using System;

namespace HelloRpcLiteService
{
        public class ProductService : IProductService
        {
                public string GetDateTimeString()
                {
                        return DateTime.Now.ToString();
                }
        }
}

 

在Global.asax中初始化RpcLite

  • 向工程中添加Global.asax
  • 在Application_Start函數中添加初始化代碼
using System;
using RpcLite.Config;

namespace HelloRpcLiteService
{
        public class Global : System.Web.HttpApplication
        {
                protected void Application_Start(object sender, EventArgs e)
                {
                        RpcInitializer.Initialize(builder => builder
                                .UseService<ProductService>("ProductService", "api/service/")
                                .UseServicePaths("api/")
                                );
                }
        }
}

 

說明

  • UseService<ProductService>(“ProductService”, “api/service/”)是添加一個服務 泛型參數ProductService為服務提供類, 第一個參數”ProductService”為服務名 “api/service/”為服務相對於當前WebApplication根的地址,例如WebApplication地址為http://localhost:8080則服務地址為http://localhost:8080/api/service/。若服務部署到虛擬目錄下如http://localhost:8080/app1則服務地址為http://localhost:8080/app1/api/service/
  • UseServicePaths(“api/”)指定服務地址的前綴,以此地址開始的所有Url都會被認為是RpcLite服務,UseService中使用的路必需在ServicePaths中。若沒有配置此選項則不能正常訪問服務。

運行

到此一個RpcLite服務已經創建完成,可運行查看結果。
  • F5運行WebApplication,在浏覽器中查看地址,假設是http://localhost:11651
  • 在浏覽器訪問http://localhost:11651/api/service/GetDateTimeString,可看到返回的內容是當前日期
  • 在浏覽器訪問http://localhost:11651/api/service/可以看到當前服務的信息,服務名及所有接口名
Service Name: ProductService
Actions:
String GetDateTimeString();

通過RpcLite客戶端、JavaScript就可以訪問這個服務了。

 

本文代碼地址 https://github.com/aolyn/rpclite.docs/tree/master/samples/HelloRpcLite/src/HelloRpcLiteService

 

QQ群:364617712 

歡迎加入

聯系方式

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved