Biztalk 无法路由已发布的邮件,因为找不到订阅服务器
在服务器中运行BizTalk包时,我出现以下错误: 无法路由已发布的邮件,因为找不到订阅服务器 包装说明: 使用存储过程将CSV平面文件导入SQL Server 细分: 创建表代码:Biztalk 无法路由已发布的邮件,因为找不到订阅服务器,biztalk,biztalk-2013r2,Biztalk,Biztalk 2013r2,在服务器中运行BizTalk包时,我出现以下错误: 无法路由已发布的邮件,因为找不到订阅服务器 包装说明: 使用存储过程将CSV平面文件导入SQL Server 细分: 创建表代码: CREATE TABLE [dbo].[Accounts]( [Id] [int] IDENTITY(1,1) NOT NULL, [AccountName] [nvarchar](150) NULL, [ServiceAddress] [nvarchar](150) NULL,
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
平面文件:命名为sample.csv
Account Name,Service Address,Account Number
JOE BLOW,ADDRESS X CITYX IL 61999,932F623Y52
我正在使用WCF连接到数据库
我正在使用存储过程
我为平面文件创建了一个模式
接收端口配置
发送端口配置
我创建了一条消息来接收平面文件
我创建了一条消息将XML发送到SQL
我删除了接收组件并分配了平面文件消息
我删除了Send组件并分配了存储的Proc消息
我删除了存储过程的接收响应组件
然后我删除了一个构造消息组件来初始化XML文档并创建映射
我将包部署到服务器,而没有部署到GAC,
然后我在GAC中手动注册了该组件
在服务器中:
我设置了所有接收和发送端口:
发送端口
我配置应用程序的时候
我启动了应用程序:
- 接收位置启用
- 发送端口已启动
- 我完全停止并重新启动了应用程序
基本上,业务流程上的订阅与接收到的消息上的上下文属性不匹配 当您遇到此错误时,您需要做的始终是查看挂起的消息,查看其外观,并将其上下文属性与BizTalk Administrator中的订阅进行比较 在您的情况下,问题似乎是您没有一个接收管道,该管道具有一个平面文件disassembler,该平面文件disassembler上指定了平面文件方案,该平面文件disassembler可以将其转换为XML,并使用模式名为的消息类型上下文属性发布它 因此,现在的情况是,它将原始平面文件发布到消息框中,而没有消息类型,消息类型也是业务流程订阅的内容,并且您没有特定的订阅规则来侦听来自该端口的消息,该端口随后可以处理原始消息。因此,它不知道如何处理该消息,并使用上述错误将其挂起。您声明: “我将包部署到服务器,但没有部署到GAC,然后在GAC中手动注册组件。” 但是,这表示BizTalk Server的部署过程不正确。您应该而不是必须手动进行GAC。此外,您不会指明在BizTalk Server中注册(导入)组件的任何位置 如果不导入,运行时就看不到任何工件,因此找不到任何模式 如果您在本地运行(此时您应该在本地运行),只需从Visual Studio部署,所有内容都将被注册并自动关闭
如果要部署到远程服务器(不能是您的开发/测试BizTalk实例),则必须从生成计算机导出.msi,或使用BizTalk部署框架创建部署包。因此,对于So来说,在奇怪的状态下,这是太多的信息,会混淆问题。有一个有趣的小道消息。请看我的答案。