怎麼在別的解決方案用另外一個解決方案的接口?

答:把接口代碼寫成服務發佈到公網,其餘項目用「添加服務引用」,把發佈的服務添加到本身的項目中。html

 

學習過程當中參考的網址:程序員

http://www.javashuo.com/article/p-soaulrom-eu.htmlweb

http://www.javashuo.com/article/p-vwnquhmm-bb.html學習

http://www.javashuo.com/article/p-dulwieau-cy.html.net

https://blog.csdn.net/friendan/article/details/49362409orm

 

過程遇到的問題:htm

問題1:怎麼發佈服務blog

1)新建一個服務接口

 

2)服務裏寫接口,記得接口上面加個[WebMethod]。rpc

 

3)發佈

 

問題二:怎麼調用服務

1)在你須要調用服務的文件下,右擊【添加服務引用】,具體過程看上面的網址。筆者踩過的坑:在UI層裏添加引用,在DAL怎麼也調用不了,結果發現引用錯地方了。

 

 

2)添加成功後,會多這些文件

 

 

 

 

3)在代碼中引用,具體代碼看你的接口怎麼寫的。引用都是用一樣的方法:服務名.+你的接口

代碼:

WebReference.WxSentMsg ws = new WebReference.WxSentMsg(); --服務名.命名空間

WebReference.SentMsg sm = new WebReference.SentMsg(); --服務名.接口參數

sm.cntr_no = dr["CNTR_NO"].ToString(); --填寫傳參

sm.cntr_request = dr["REQUEST_TYPE"].ToString();

sm.cntr_size = dr["CNTR_SIZE_CODE"].ToString();

sm.pk_id = dr["PK_ID"].ToString();

sm.truck_no = dr["TRUCK_NO"].ToString();

sm.user_name = userCode;

ws.WxMsgPush(sm); --傳參

 

筆者在兩個項目中都引用這個服務,但方法不同。如下是在winform項目中添加:

 

一樣,

1.添加服務引用,生成的文件以下。爲何和上面生成的不同,= =我也不知道。多是項目不同,一個是winform項目,一個是隻寫服務的項目。

 

2.調用服務。這個步驟筆者踩過幾個坑。

跟上面的同樣的方法寫好代碼,本覺得能過的,結果在第一行就出現問題:

---------------------------------------------------------------

檢測到 BindingFailure

Message: 顯示名爲「CTMS.DAL.XmlSerializers」的程序集未能加載到 ID 爲 1 的 AppDomain 的「Load」綁定

上下文中。錯誤的緣由爲: System.IO.FileNotFoundException: 未能加載文件或程序

集「CTMS.DAL.XmlSerializers」或它的某一個依賴項。系統找不到指定的文件。

---------------------------------------------------------------

 

 

從新引用幾回都不行,本來個人引用方式是:高級-添加Web引用,

 

嘗試幾回後,換了方式:直接輸入地址引用,沒注意兩種方法生成的文件有沒有不同。

 

網上找了不少論壇,發現是調用的方法出現問題,具體網址最上面已經複製出來了。

 

接着我改調用方法,但輸入服務名,點出來的東西,前面一截是個人,後面的爲何都加了Response、ResponseBody啊! = =

 

 

我只能按着感受取一個試試,而後用又出現下面問題:

 

---------------------------------------------------------------

發生了 System.InvalidOperationException

Message=在 ServiceModel 客戶端配置部分中,找不到引用協定「ServiceReference1.WxSentMsgSoap」的默認終結點元素。這多是由於未找到應用程序的配置文件,或者是由於客戶端元素中找不到與此協定匹配的終結點元素。

---------------------------------------------------------------

 

 

最後,終於找對了:

 

我服務裏的命名空間是WxSentMsg,但這裏的調用要用:WxSentMsgSoapClient,這樣就過了……

 

以上,在兩個項目中引用web服務我總算是作完了。挺有成就感的,畢竟在此以前我什麼都不懂,都是靠網上搜索,本身摸索出來的。這就是作程序員的樂趣吧,像搭積木同樣,用邏輯一點點尋找線索、整合,一步步攻克難關,把本身想要的模型建成,實現後挺有成就感的。享受這個過程。

相關文章
相關標籤/搜索