一、先建三個專案:
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...