2015-12-02 78 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部署框架创建部署程序包。

相关问题