學習
biztalk
的最好文件就是
biztalk
的隨機文件,文件中包括一套循序漸進的教程(
tutorial
)還有許多就某一單項技術的
sample
(samples in the sdk
)。這些教程和例子描述的步驟十分的詳細,詳細到你什麼都不用想照它的步驟一步步的做都可以了。
教程步驟太詳細,而且往往只告訴你怎麼做,很少告訴你為什麼這麼做,有朋友經常跟著教程一路做下去,最後作完了,測試
ok通過,回過頭來想想自己都做了什麼,一片茫然,不知怎麼做的結果就出來了。如果做的順利(每個步驟沒有遺漏,沒有做錯),就會出正確的結果,一旦中間哪個步驟遺漏了或**錯了一點,導致沒出正確的結果,就不知道怎麼找錯在哪了。
所以跟著教程做時一定要注意幾點: l
每一步都仔細的做,不要有遺漏步驟,不要敲錯字元。 l
l要學會使用
biztalk
管理器檢視服務例項,訊息,特別是掛起的服務例項(可以在流程偵錯程式中單步除錯
orchestration
),如果出現結果不是預期的,在這裡查詢錯誤原因。
最近在做
biztalk2006
隨機文件中的
tutorial
例子,tutorial1
和tutorial2
已經做完,問題不大,按照說明一步步的做就是了。 在做
tutorial3
時碰到了一些問題,在此把我做的過程中碰到的問題和解決的方法記錄下來,供還沒做過的朋友參考。
tutorial3
這個示例延續
tutorial2
示例,在
tutorial2
基礎上繼續往下做。所以必須在完成
tutorial2
後才能開始
tutorial3。
tutorial3
涉及的主要技術有:相關集、
orchestration
傳送埠消費
web services
、orchestration
接收埠發布為
web services。
1.
lesson 3的step 1中「配置傳送po到供貨商web services的埠」
這一步的最後,
tutorial
漏了乙個操作:在「繫結埠」視窗,在「埠繫結」下拉列表中選擇「現在指定」,系統會自動生成乙個指向供貨商
web services
的物理傳送埠,並把這個邏輯埠跟這個物理埠繫結。如果這個操作沒做,在以後的步驟配置應用程式的這個邏輯埠對應的物理埠時會找不到
sendcommonpo_sendport
埠。當然,也可以在配置應用程式時新建乙個物理埠指向供貨商
web services。
當在biztalk
專案中引用乙個外部
web services
,即orchestration
使用消費(
consume
)web services
時,biztalk
給這個web services
生成相應的訊息型別,為多部分訊息型別。每個
web services
方法涉及的輸入輸出引數都被生成相應的訊息型別。 當在
biztalk
專案中引用乙個外部
web services
時,biztalk
同時給這個
web services
生成相應的
web埠型別,跟
web services
方法對應,每個
.asmx
檔案生成乙個埠型別,每個方法生成乙個埠中的操作,方法的輸入引數和返回引數分別生成操作訊息,這些操作訊息就是上面生成的那些多部分訊息型別。 配置
orchestration
中跟web sevices
相連的邏輯埠的埠型別為上面引用
web services
系統生成的
web
埠型別。
同時還要注意,傳送到連線
web sevices
的邏輯埠的訊息例項的型別要是
web message type
,即是從
web services
引用過來的訊息型別,這樣才能跟傳送埠的埠型別匹配。在配置訊息例項時,在訊息型別下拉列表中「
web message type
」下選「
select from referenced assembly
」,然後在彈出的視窗中選擇相應的
web message
型別。
2.
發布web services嚮導生成了web services,但是例項中並沒有使用用嚮導生成的web services。
示例中有兩個
orchestration
的接收埠需要發布為
web services
,receiveasn_port
和receiveinvoice_port
,文件中也在步驟四用
web services
發布嚮導生成了對應這兩個埠的
web services
,但是在實際中並沒有使用嚮導生成的
web services
,而是使用了預先準備好的預先生成好的
web services
,這個web services
放在路徑「
c:\tutorial\solutions\b2bsolution\b2borchestrations_webservice
」中,並在
tutorial 2
中「步驟
4: 設定供貨商的
web service
中」配置到
iis的
虛擬目錄下。而用
web services
發布嚮導生成了
web services
的url
是http://localhost/b2borchestrations_proxy
所以文件中在
web services
的最後一步,沒有設定給應用程式生成相應的接收位置,而是在
biztalk
管理器中手工新建接收位置以對應到
就因為使用了在別的機器上預先生成的
web services
,所以才有了「第二步:更新
token
」。因為是在別的機器用嚮導做的
web services
,在生成
web services
時要引用包含
orchestration
的assembly
,assembly
有自己的
token
,所以它需要把每個試驗者給
assembly
生成的token
替換它預先生成的
web services
中使用的
token
。如果使用自己用嚮導生成的
web services
,引用的
assembly
就是要使用的那個
assembly
,就沒必要更新
token
,這一步是不必要的一步。這一點文件上沒有說明這一點,很容易產生誤導。
3.
嚮導生成的web services很大機會不能正常工作
用
biztalk
的web services
發布嚮導生成的
web services
很大的機會是不能正常工作的,反正我每次用嚮導做出來的
web services
工作都是不正常,也有好些朋友反應同樣的問題。
具體現象是生成的
web services
不會有返回結果,在事件檢視器中往往有這樣的錯誤:試圖連線到伺服器「
******
」上的「
biztalkmgmtdb
」sql server
資料庫失敗。錯誤:
「無法開啟登入所請求的資料庫
"biztalkmgmtdb"
。登入失敗。」
關於這個問題,請參看我的一篇專門討論這個問題的文章:biztalk
發布web
服務時遭遇
'soapexceptioninternal soap processing failure'
錯誤
在Biztalk應用中呼叫程式集的方法
本文通過乙個簡單例項,介紹biztalk應用中呼叫程式集的方法。雖然biztalk server提供了眾多的內建功能,然而在一些情況下可能還需要呼叫程式集中的函式。因為在.net程式集中,可以非常方便地呼叫web service 訪問資料庫 另一方面,有些函式是程式集中已經寫好的,為了增加軟體的復用...
在Biztalk應用中呼叫程式集的方法
本文通過乙個簡單例項,介紹biztalk應用中呼叫程式集的方法。雖然biztalk server提供了眾多的內建功能,然而在一些情況下可能還需要呼叫程式集中的函式。因為在.net程式集中,可以非常方便地呼叫web service 訪問資料庫 另一方面,有些函式是程式集中已經寫好的,為了增加軟體的復用...
Lua文件翻譯(中)
lua文件翻譯 中 型別 lua是動態型別語言,不需要人為指明變數型別,指令碼直譯器會自動判斷變數型別。簡單的說,給變數賦什麼型別的值,變數就變成什麼型別。lua是動態型別語言,不需要人為指明變數型別,指令碼直譯器會自動判斷變數型別。簡單的說,給變數賦什麼型別的值,變數就變成什麼型別。lua是動態型...