2017-02-17 54 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來查看它是否可以找到您的應用程序名稱。確保您的應用正確部署。 –