日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BizTalk开发系列(三十一)配置和使用HTTP适配器

發(fā)布時(shí)間:2025/3/21 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BizTalk开发系列(三十一)配置和使用HTTP适配器 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

更多內(nèi)容請(qǐng)查看:BizTalk動(dòng)手實(shí)驗(yàn)系列目錄

? ? ? ? ? ? ? ? ? ? ??BizTalk 開發(fā)系列

???? BizTalk的主機(jī)分別進(jìn)程內(nèi)主機(jī)和獨(dú)立主機(jī)。但由于一直使用的是進(jìn)程內(nèi)主機(jī),對(duì)于獨(dú)立主機(jī)的認(rèn)識(shí)比較模糊,前不久在做一個(gè)BizTalk的項(xiàng)目的時(shí)候,個(gè)別系統(tǒng)使用HTTP的方式發(fā)布Txt之類的文本的。剛好HTTP適配器與其他的適配器有一點(diǎn)不同就是它的接收適配器是宿主在獨(dú)立主機(jī)(IIS)上。在使用的時(shí)候需要進(jìn)行額外的配置。現(xiàn)在我們就來看一下運(yùn)行于獨(dú)立主機(jī)上的HTTP接收適配器的使用,以及運(yùn)行于進(jìn)程內(nèi)主機(jī)的發(fā)送適配器的使用。

?

為 HTTP 接收位置配置 IIS

?????? BizTalk主機(jī)分為進(jìn)程內(nèi)主機(jī)和進(jìn)程外主機(jī),進(jìn)程內(nèi)主機(jī)是指宿主在BizTalk運(yùn)行時(shí)進(jìn)程的主機(jī),獨(dú)立主機(jī)是指是作為外部進(jìn)程(如 ISAPI 擴(kuò)展和 ASP.NET)適配器的宿主。因此在配置HTTP接收位置之前需要先配置IIS的BizTalk接收適配器擴(kuò)展。

1.首先打開IIS管理器,在Web服務(wù)擴(kuò)展中添加一個(gè)新的Web服務(wù)擴(kuò)展。

2.在新的Web擴(kuò)展中輸入擴(kuò)展的名稱和位置,BizTalk擴(kuò)展的位置一般在:C:\Program Files\Microsoft BizTalk Server 2006\HttpReceive\BTSHTTPReceive.dll 。最后選擇設(shè)置擴(kuò)展?fàn)顟B(tài)為允許。

3.設(shè)置完成之后,可以在IIS的Web服務(wù)擴(kuò)展中查看到新添加的擴(kuò)展。

?

?

配置接收位置

?? 之前講到了HTTP適配器是運(yùn)行于獨(dú)立主機(jī)的,因此配置接收位置的時(shí)候跟其他適配器有一點(diǎn)不同,也就是除了在BizTalk應(yīng)用程序里配置之外還需要在獨(dú)立主機(jī)(IIS)上進(jìn)行配置。

?? 1. 在IIS上創(chuàng)建接收位置的位置比較簡單,只需要在IIS上創(chuàng)建一個(gè)虛擬目錄,將目錄的地址指向BizTalk HTTP擴(kuò)展DLL的目錄。不過有兩點(diǎn)需要注意,一是為發(fā)安全起見將虛擬目錄的運(yùn)行模式選擇讀取和執(zhí)行,另外如果需要使用隔離級(jí)別需要?jiǎng)?chuàng)建一個(gè)獨(dú)立的運(yùn)行池,運(yùn)行池的帳戶要存在于BizTalk Isolated Hosts 和 IIS_WPG組中。并且需要給虛擬目錄指定運(yùn)行池。

為運(yùn)行池指定用戶

為虛擬目錄指定運(yùn)行池

???? 至此您可能會(huì)試著去訪問此接收位置,由于還未在BizTalk Application中配置接收位置,因此訪問時(shí)您會(huì)收到HTTP 500的錯(cuò)誤。不過BizTalk在事件日志中給出了友好的提示,如下。如果在配置或運(yùn)行過程中出現(xiàn)錯(cuò)誤也可以參考這些信息解決。

The BizTalk HTTP receive adapter failed to initialize itself. Possible reasons:
1) Receive location URL is not created/configured correctly.
2) Receive location is not enabled.
3) HTTP receive adapter is not running under a user that has access to management and message databases.
4) Isolated host instance is not created for HTTP Receive adapter.

2. 在BizTalk的Application中配置HTTP接收位置。如下圖所示,只需要配置虛擬目錄地址即可。

測試

??? 在測試之前我們需要?jiǎng)?chuàng)建一個(gè)發(fā)送端口來接收來自HTTP接收端口發(fā)布的消息。HTTP接收適配器支持Get和Post方法的請(qǐng)求。Get方式的測試我們可以直接在URL后面加上問號(hào)再加上您要的請(qǐng)求的數(shù)據(jù)即可。

??

?? Post方法我們可以自己寫代碼,也可以借用第三方的工具。這里使用的是Fiddler。一個(gè)很強(qiáng)大的免費(fèi)的HTTP? Debuger工具。

?

?

配置發(fā)送端口

?? 由于HTTP的發(fā)送適配器是運(yùn)行于進(jìn)程內(nèi)主機(jī)的因此配置比接收適配器要簡單點(diǎn),只需要配置目標(biāo)HTTP路徑即可(如果安全上的問題)

測試

??? 基于之前創(chuàng)建好的接收位置,我們?cè)贖TTP的發(fā)送端口端口訂閱從HTTP接收適配器發(fā)布過來的消息。同時(shí)新建一個(gè)Aspx的頁面。將接收到的請(qǐng)求數(shù)據(jù)寫到日志(測試時(shí)使用小量數(shù)據(jù))。

System.IO.StreamReader?qr?=?new?System.IO.StreamReader(Request.InputStream,?System.Text.Encoding.UTF8);
????????
string?uriString?=?qr.ReadToEnd();?

????????
if?(!string.IsNullOrEmpty(uriString))
????????
{
????????????System.Diagnostics.EventLog.WriteEntry(
"HTTPDemo",?"Content:\r\n"?+?uriString);?
????????}
?

?

發(fā)布HTTP請(qǐng)求之后我們可以在日志中查看到相應(yīng)的記錄。

?

?

使用HTTP適配器接收Txt之類的文本.?

?? 之所以把接收文本提出來是因?yàn)镠TTP的接收適配器是宿主在IIS上的,需要請(qǐng)求方主動(dòng)的請(qǐng)求該路徑才可以。但有些系統(tǒng)可能它是通過HTTP的方式將文本發(fā)布出來的。比如http://www.cbcye.com/demo.txt 這樣路徑。所以不能使用HTTP接收適配器去主動(dòng)請(qǐng)求Txt.那么這個(gè)任務(wù)就落在了發(fā)送適配器上面,但是發(fā)送適配器只支持POST方法,Txt文本是無法通過POST方法得到的。

 所以需要?jiǎng)?chuàng)建一個(gè)接收代理(Aspx頁面),代理的作用是接收發(fā)送適配器上的請(qǐng)求,然后通過以下的代碼向目標(biāo)路徑獲取文本數(shù)據(jù),并將數(shù)據(jù)返回,被發(fā)送適配器的接收方法獲得。需要注意的是需要將前臺(tái)頁面的代碼去除。這樣才能將接收到的Txt信息原樣的返回。

System.IO.StreamReader?qr?=?new?System.IO.StreamReader(Request.InputStream,?System.Text.Encoding.UTF8);
string?uriString?=?qr.ReadToEnd();
if?(!string.IsNullOrEmpty(uriString))
{
????System.Net.HttpWebRequest?req?
=?(System.Net.HttpWebRequest)System.Net.WebRequest.Create(uriString);
????req.UserAgent?
=?"Mozilla/5.0?(Windows;?U;?Windows?NT?5.2;?zh-CN;?rv:1.9.0.3)?Gecko/2008092417?Firefox/3.0.3?(.NET?CLR?3.5.21022)";
????System.Net.HttpWebResponse?res?
=?(System.Net.HttpWebResponse)req.GetResponse();
????System.IO.StreamReader?sr?
=?new?System.IO.StreamReader(res.GetResponseStream(),?System.Text.Encoding.UTF8);
????Response.Write(sr.ReadToEnd());
}

轉(zhuǎn)載于:https://www.cnblogs.com/cbcye/archive/2008/12/06/1349142.html

總結(jié)

以上是生活随笔為你收集整理的BizTalk开发系列(三十一)配置和使用HTTP适配器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。