2015-12-02 18 views
1

我在服務器上運行我的BizTalk包時,有下列錯誤:無法路由的已發佈的消息,因爲沒有用戶發現

無法路由的已發佈的消息,因爲沒有用戶發現

包說明: 使用存儲過程將CSV平面文件導入SQL Server。

enter image description here

擊穿:

創建表的代碼:

CREATE TABLE [dbo].[Accounts](
    [Id] [int] IDENTITY(1,1) NOT NULL, 
    [AccountName] [nvarchar](150) NULL, 
    [ServiceAddress] [nvarchar](150) NULL, 
    [AccountNumber] [nvarchar](50) NULL, 
CONSTRAINT [PK_Accounts] PRIMARY KEY CLUSTERED 
(
    [Id] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

創建存儲過程代碼:

CREATE PROCEDURE [dbo].[InsertAccount] 
    @AccountName AS NVARCHAR(150) , 
    @ServiceAddress AS NVARCHAR(150) , 
    @AccountNumber AS NVARCHAR(50) 
AS 
    INSERT INTO dbo.accounts 
      (AccountName , 
       ServiceAddress , 
       AccountNumber 
      ) 
      SELECT @AccountName , 
        @ServiceAddress , 
        @AccountNumber 

平面文件:它命名爲採樣。以csv

Account Name,Service Address,Account Number 
JOE BLOW,ADDRESS X CITYX IL 61999,932F623Y52 

我使用WCF連接到數據庫 enter image description here

我使用一個存儲過程 enter image description here

我創建了平面文件架構 enter image description here

接收端口配置

enter image description here enter image description here enter image description here

發送

enter image description here enter image description here enter image description here

我創建的消息以接收所述平面文件端口配置

enter image description here

我創建的消息發送XML到SQL

enter image description here

我放棄了接收組件和分配平面文件消息 enter image description here

我放棄了發送組件和分配存儲的過程信息

enter image description here

我丟棄了存儲的接收響應組件PROC

enter image description here

然後我放棄了構造消息組件初始化XML文檔和創建地圖。

enter image description here enter image description here enter image description here

我部署包到服務器,無需部署到GAC, 然後我手動登記在GAC組件。

enter image description here

在服務器:

我將所有的接收和發送端口:

enter image description here enter image description here enter image description here

發送端口

enter image description here enter image description here

的我配置的應用程序

enter image description here

我啓動的應用程序:

  • 接收位置啓用
  • 發送端口開始
  • 我完全停止d重新啓動應用程序。

我放下文件,該文件會消失,我得到的錯誤

我收到以下錯誤

消息引擎無法處理提交的適配器的消息:文件源URL:C:\ Biztalk Test \ Sales \ SampleFile * .csv。詳細信息:發佈的消息無法路由,因爲沒有找到用戶。如果未訂購訂閱業務流程或發送端口,或者訂閱評估所需的某些消息屬性尚未升級,則會發生此錯誤。請使用Biztalk管理控制檯來解決此故障。

在URI爲「C:\ Biztalk Test \ Sales \ SampleFile * .csv」的接收位置「ServerReceiveLocation」中,適配器「FILE」收到的消息被掛起。 錯誤詳細信息:發佈的消息無法路由,因爲未找到訂閱者。如果未訂購訂閱業務流程或發送端口,或者訂閱評估所需的某些消息屬性尚未升級,則會發生此錯誤。請使用Biztalk管理控制檯來解決此故障。

enter image description here enter image description here

+0

所以,在一個奇怪的狀態下,這是太多的信息,並且混淆了這個問題。有一點很有意思。請看我的答案。 –

回答

3

基本上你的業務流程的訂閱不匹配收到的消息上下文屬性。

總是當你得到那個錯誤時,你需要做的是看看暫停的消息,看看它的樣子,並將它的上下文屬性與BizTalk管理員中的訂閱進行比較。

在你的情況下,問題似乎是你沒有一個接收管道,它有一個Flat File Dissasembler和指定的平面文件方案,它會將其轉換爲XML並使用消息類型上下文屬性模式名稱

所以發生的是它將原始平面文件發佈到消息框而沒有消息類型,並且消息類型也是Orchestration訂閱的內容,並且您沒有特定的訂閱規則可以監聽來自該端口的消息可以處理原始消息。所以它不知道如何處理消息,並用上述錯誤掛起它。

3

幽州:

「我部署包到服務器,而無需部署到GAC,然後我手動註冊在GAC中的組成部分。」

但是,這表示BizTalk Server的部署過程不正確。你應該不是必須手動GAC。此外,您不會在BizTalk Server註冊的任何地方註明(導入)組件。

如果沒有導入,您的工件在運行環境中都不可見,因此沒有可以找到的模式。

如果你正在本地運行(你應該在這一點上)只是從Visual Studio部署,一切都會自動註冊和GAG'd。

如果要部署到遠程服務器(不能是DEV/TEST BizTalk實例),則必須從您的生成計算機中導出.msi或使用BizTalk部署框架創建部署程序包。

相關問題