跳到主要內容

[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

留言

這個網誌中的熱門文章

[分享]GOLiFE Care-X HR 智慧悠遊心率手環慘狀

GOLiFE Care-X HR

GOLiFE出了一支有悠遊卡功能的智慧手環,剛戴上去的時候感覺還不錯,而我需要有血氧偵測步數計數兩功能,剛好上面都有,正好來體驗看看。但是,或許是我沒有智慧手環的命吧~這隻手環只到我手上不到一個禮拜,手環正式往生。
我只能說,功能很強大,基本上該有的功能都有了,但電量兩天大概就需要充電一次,而充電是三個接觸點

一定一定要確認好接觸點有無在手環上面的三個接觸點,不然就會跟我的一樣,也要確認是否有正常充電,避免短路造成火災的危險。




只能說,需要使用電的東西,都需要小心一點。

不知道這樣,有沒有在保固內,一個三千多的手環就這樣GG了~~
Orignal From: [分享]GOLiFE Care-X HR 智慧悠遊心率手環慘狀

[C#] 如何讓Linq + entity framework 可以達到with(nolock)

到底Linq對SQL做了什麼??

現在大部分人都使用linq+entity framework 去資料庫取得資料,但實際上在對資料庫存取SQL語法為何,確認大多數人並不了解的。

建議可以使用LINQPad 這套程式來去測試看看,避免不必要的語法造成資料的Lock,一個常用的資料表Lock會影響到其他作業的進行,甚至有可能造成TimeOut,而發出告警。

大家可以參考下列語法使用,針對select 部分,就不會去lock Table,也不會因為其他的資源lock 而造成TimeOut
c#
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required
, new TransactionOptions() { IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted }))
{
使用到的linq 語法
<pre>
<code>}
</code>
</pre>
其中使用到的TransactionScopeOption列舉 可以參考 .NET Framework 類別庫說明

裡面有用到三種方式,如果要nolock 請使用Required,請參考下列圖示


希望大家不要再被linq 所產生的語法所困惱了~
Orignal From: [C#] 如何讓Linq + entity framework 可以達到with(nolock)

[Windows]Win10關機,卻不是關機,解決方法

WIN10關機後,開機卻發現RAMDisk資料並沒清除,幾次之後發現關機卻不是我們認識的關機,原來這是WIN10的一個特性,為了加快開機速度,所以設定為可斷電的睡眠,卻步是真正的關機,喔~天啊!那麼會影響到很多設定關機重開後沒有生效、外接硬碟沒有真正的關閉連線.....一些問題。