Web Services 分布式實戰

2021-05-24 15:23:34 字數 2360 閱讀 6989

一、先建三個專案:

hellolibary(類庫,需要部署的**放在這裡)

helloserver(控制台程式,用於偵聽請求)

helloclient(控制台程式,用於請求遠端物件)

使用控制台程式的原因是簡單快捷,呵呵

具體**如下:

1.hellolibary:

using system;

using system.collections.generic;

using system.text;

namespace hellolibary

public string sayhello(string name)}}

2.helloserver:

using system;

using system.collections.generic;

using system.text;

using system.runtime.remoting;//注意要新增system.runtime.remoting的引用

//要引用用於元資料呼叫

using servermain;//要引用用於元資料呼叫

namespace helloclient}}

由以上配置可正確得到結果:

helloserver控制台輸出:

the server is listening , press anykey to exit!

hello ctor called

hello.sayhello()

helloclient控制台輸出:

hello,a9fs3

二、通過配置檔案實現上述功能

1、helloserver端:

2、helloclient端:

using system;

using system.collections.generic;

using system.text;

using system.runtime.remoting;

namespace helloclient}}

>

>

執行的結果出乎意料,根本就呼叫不到遠端物件,到底為什麼呢?而且嘗試把遠端物件駐留在asp.net中,也是沒有成功,我試著找了很多原因,包括:1、遠端物件是否可跨域訪問,當然可訪問。2、通道、協議和埠是否一致、正確,審查也是沒問題。3、iis可否常執行4、通過http://localhost/serveragency/website/hello.soap?wsdl

訪問結果是丟擲異常:未能找到服務

最終覺得可能是我的系統問題,因為我檢視了一下machine.config檔案,.net framework2.0裡面根本沒有http和tcp模板,只有.net framework 1.1裡才有,不知道是不是這個原因?

分布式 分布式鎖

本質是利用redis的setnx 方法的特性來加鎖,setnx 即key不存在則設定key,否則直接返回false,要求在分布式系統中使用同乙個redis服務,以下提供兩種解決方案 1 直接使用redistemplate 這其實並不能完全保證高併發下的安全問題,因為可能在鎖過期之後該執行緒尚未執行完...

分布式 分布式事務

是資料庫執行過程中的乙個邏輯單位,由乙個有限的資料庫操作序列構成。事務的acid四大特性 原子性 atomicity 事務作為乙個整體被執行。一致性 consistency 從乙個一致的狀態轉換到另乙個一致的狀態。隔離性 isolation 多個事務併發執行時,併發事務之間互相影響的程度。永續性 d...

docker zipkin(分布式鏈路追蹤)實踐

參考 dependenciesspring name test 在zipkin上顯示的服務名,不寫則是 default zipkin base url zipkin服務的位址 sender type web 網上有人在zipkin上查不到記錄,說加上這個即可,但本人親測不加也是可以查到記錄 sleu...