跳到主要內容

[C#]當WebService 需要多載時的方法,需要注意MessageName

.NET的WebService是一個可以讓別人從Web參考的存取資料的方式;這算是一個古老的技術,早從.Net 1.1時代就開始了,由於傳遞的方式是走SOAP,傳遞格視為XML,所以資料容量比較大,直到現今已經到JSON傳遞資料的時代,WebService還是有人使用,畢竟還是有老舊系統存在的使用必要。

當原本被呼叫的WebService需要增加欄位的時候,就變成所有周邊系統都要接著一起修正,這樣一個大工程,難道不能有WebService的多載嗎?



於是乎,就著手寫看看
首先,需要將
C#
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
修改為
[WebServiceBinding(ConformsTo = WsiProfiles.None)]

再來就是,很重要
C#
[WebMethod(Description = "原本的呼叫", MessageName = "參數1")]
function 上方 MessageName 會去對應SERVICE後面op=參數
[WebMethod(Description = "原本的呼叫", MessageName = "參數2")]
function 上方 MessageName 會去對應SERVICE後面op=參數2

所以,當原本的呼叫到的參數=AAA,請在MessageName="AAA",不然,其他周邊系統就會通通掛掉,因為SOAP的設定關係。

如果出現此WEB服務不符合.....之類的字眼,那是因為本來就不建議這樣使用。
警告畫面
可以再Web.Config設定
ini
<webServices>
<conformanceWarnings>
<remove name="BasicProfile1_1"/>
</conformanceWarnings>
</webServices>


參考資料:
ASP.NET WebService 增加方法註解與多載設定

Orignal From: [C#]當WebService 需要多載時的方法,需要注意MessageName

留言

這個網誌中的熱門文章

[WordPress]如何同步文章到痞客邦,痞客邦的設定方式

首先,就是要先申請一個 痞客邦 的BLOG。 申請好了,就是登入您的BLOG,切記這邊使用 DJ EmailPublish 同步文章,可以到我另外一篇去看怎麼設定;而 痞客邦 設定方式如下。

[分享]Google AdSense 突破$10

太感動了,AdSense 突破$10 依據 Google AdSense 說明 超過$10美金就會收到明信片,上面會有PIN,再去AdSense後台輸入,來檢驗帳戶資訊的正確性。 可以參考起付額度說明,會依據幣別所達到的金額,Google對應事項;可惜的是上面並沒有台幣。 輸入畫面,會在登入Google AdSense 登入後,上面會出現 由於您尚未驗證地址,因此我們目前暫緩付款給您。 ,點選後方操作,即可找到輸入PIN碼的頁面 參考資料: Google AdSense 說明 Orignal From: [分享]Google AdSense 突破$10

IIS 相關設定

今天在架設內部網站時遇到兩個問題: 1、 在IIS上新增站台完成後,在Server上可以瀏覽,但是把連結給同仁卻不行。 2、 首頁不是根目錄的Login頁面。 問題1解決方法: 確認防火牆是否有新增該網站需要用到的Port,如果沒有就得要新增了。 步驟如下: Step1:從控制台開啟防火牆 Step2:點選 進階設定 > 點選 輸入原則 ,反藍後按滑鼠右鍵 > 新增原則 Step3:在 新增輸入精靈規則畫面 點選第二個 連接埠 > 下一步 Step4:選擇 TCP > 選擇 特定本機連接埠 輸入所架設的網站開的Port > 下一步 Step5:動作點選 允許連線 > 下一步 Step6:設定檔 三個都打勾(預設打勾) > 下一步 Step7:設定名稱 e.g. PCD ,描述可省略 > 完成 結果:在輸入原則裡 查找剛剛所設定的PCD 是否有在列表內。 確定有,就把網址給同仁測試是否能正常連線了。 接下來,來解決第二個問題。 因為我架設的網站是MVC架構,所以當網站一開啟時,不是到.web根目錄的login ,而是view裡面的某一個資料夾的index 時,我是這樣做的。 利用 HTTP 重新導向 功能 Step1:點選網站 > 在網站首頁友會把網站會使用到的功能全部列出,找到 HTTP 重新導向 > 點兩下 開啟 預設畫面: 將要求重新導向至此目的地 打勾,並輸入 要導到的畫面 重新導向行為 兩個都打勾,狀態碼 則不更改 確認無誤後,按下套用,並重啟站台就可以了。 HTTP 重新導向這個功能是目前能 [暫時] 提供需要的畫面導向,網站雖有Login頁面,但是因為沒有建立同仁帳號權限,所以就直接將網站導頁至需要測試的功能頁。 目前測試起來沒有問題,但如果有建立帳號權限後,就會回復到從Login登入了! Orignal From: IIS 相關設定