2017-02-17 89 views
2

我已将biztalk项目从Biztalk 2009迁移到Biztalk 2016和.NET 4.6.2。在旧版本中,一切正常,但在新版本中,WCF-Custom适配器出现错误。Biztalk2016映射不存在。对于配置存储应用程序,配置信息尚未设置

A message sent to adapter "WCF-Custom" on send port "PhySndGuiExportResponsePort" with URI "net.msmq://serviceserver/private/EwrServicesInQueue" is suspended. 
Error details: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Runtime.InteropServices.COMException: The mapping does not exist. For Config Store applications, the config info has not been set. 

    at Microsoft.BizTalk.SSOClient.Interop.ISSOConfigStore.GetConfigInfo(String applicationName, String identifier, Int32 flags, IPropertyBag properties) 
    at SSOSettingsFileManager.SSOHelper.GetConfigInfo(String affiliateApplication, Boolean enableRemoteAccess) 
    at SSOSettingsFileManager.SSOSettingsManager.GetSettings(String affiliateApplication, Boolean enableRemoteAccess) 
    at SSOSettingsFileManager.SSOSettingsFileReader.Read(String affiliateApplication, Boolean enableRemoteAccess) 
    at SSOSettingsFileManager.SSOSettingsFileReader.ReadString(String affiliateApplication, String valueName) 
    at DAP.IdentityModel.Selectors.ForwardingDAPClientCredentials..ctor() 
    --- End of inner exception stack trace --- 
    at Microsoft.BizTalk.Adapter.Wcf.Converters.BehaviorFactory.ApplyEndpointBehavior(ServiceEndpoint serviceEndpoint, String wcfExtensions, String endpointBehaviorConfiguration) 
    at Microsoft.BizTalk.Adapter.Wcf.Config.CustomTLConfig.ApplyEndpointBehavior(ServiceEndpoint serviceEndpoint) 
    at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.CreateChannelFactory[TChannel](IBaseMessage bizTalkMessage) 
    at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.InitializeValues(IBaseMessage message) 
    at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2..ctor(IBaseMessage message, WcfTransmitter`2 transmitter) 
    at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfTransmitter`2.GetClientFromCache(String spid, IBaseMessage message) 
    at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfAsyncBatch`2.BatchWorker(List`1 messages) 
MessageId: {DC4E26FC-B65B-4AE6-B2F3-01AFC5B85D6F} 
InstanceID: {94A91D61-D8BE-4F74-8B06-1B4C58B36CEA} 

发送端口PhySndGuiExportResponsePort使用PassThroTransmit发送管道,传输类型WCF的定制与证书认证。

运行ssomanage工具可以看到映射是BtsDeploymentProperties,但不是其他GUID。这可能导致错误?

C:\ Program Files文件\ Common Files文件\企业单一登录> ssomanage.exe -listmappings tvn.Infra 使用SSO服务器:biztalk2016server应用

现有映射 'tvn.Infra' -

(E)$ ConfigStore $ \ BtsDeploymentProperties:BtsDeploymentProperties

任何解决它的想法是赞赏。谢谢。

+0

这是端口使用的地图?如果是这样,我会检查它,因为这些版本之间的映射引擎有一些变化。 –

+0

是的,我有一个逻辑端口并映射到部署的物理端口。我用映射编辑了我的问题。 –

+0

对不起,我是指消息之间的映射,而不是绑定。在BizTalk管理控制台中打开端口,然后检查出站地图部分是否有某些内容。 –

回答

1

你的问题是不是与WCF适配器或端口,它与一些自定义代码,正试图用SSOSettingsFileReader(从BTDF)读取SSO:

在DAP.IdentityModel.Selectors.ForwardingDAPClientCredentials。 .ctor()

我会查看你的构造函数代码,找出它试图找到的SSO应用程序名称和密钥,然后从那里开始。机会是你没有正确部署SSO配置存储 - 例如,在命令行(因为扩展没有在VS2015在这一点上工作):

MSBuild.exe <btdfproj file path> /nologo /p:Configuration=Debug /t:DeploySSO 
+0

在构造函数中,只有一个调用:SSOSettingsFileReader.ReadString(SSO_APP_NAME,LOCAL_ISSUER_ADDRESS),我仔细检查过,应用程序名称和值都存在。此语句抛出System.Runtime.InteropServices.COMException类型的异常 –

+0

我发现还有一件事,即使我的Biztalk应用程序已成功部署,但是当我使用ssomanage.exe -listapps时,它会返回“没有可用于“ –

+0

尝试使用BTDF SSOSettingsEditor.exe来查看它是否可以找到您的应用程序名称。确保您的应用正确部署。 –