BTDF / DeploymentFramework

The Deployment Framework for BizTalk is the most powerful and customizable, yet easy-to-use toolkit for deploying and configuring your BizTalk solutions.
MIT License
53 stars 24 forks source link

SSOSettingsFileReader Requested SSO value is not available within affiliate #366

Closed tfabraham closed 6 years ago

tfabraham commented 6 years ago

I'm using BizTalk 2013 and BTDF v5.5, I have SSOSettingsFileReader v5.5.100.0 in the .Net 4 GAC (there is no version in the .Net 2 GAC)

The SSOSettingsFileReader is normally rock solid but I've run out of ideas as to what is causing this problem.

I have an expression shape in an orchestration with the following code:

_ssoDetail = filenameHelper.GetSSODetails(filenamesDbConString, attachment.Filename); Microsoft.BizTalk.CAT.BestPractices.Framework.Instrumentation.TraceManager.WorkflowComponent.TraceInfo("ssoDetail.Affiliate=" + ssoDetail.Affiliate); Microsoft.BizTalk.CAT.BestPractices.Framework.Instrumentation.TraceManager.WorkflowComponent.TraceInfo("ssoDetail.field=" + ssoDetail.Field);

if (ssoDetail.Affiliate != null) { Microsoft.BizTalk.CAT.BestPractices.Framework.Instrumentation.TraceManager.WorkflowComponent.TraceInfo("Filename matches regex");

targetFolder = SSOSettingsFileManager.SSOSettingsFileReader.ReadString(ssoDetail.Affiliate, ssoDetail.Field);

Microsoft.BizTalk.CAT.BestPractices.Framework.Instrumentation.TraceManager.WorkflowComponent.TraceInfo("TargetFolder="+targetFolder);

The trace file output from the above code is as follows:

_[1]76CC.3A14::11/28/2014-10:39:05.964 [Event]:INFO: ssoDetail.Affiliate=BTS.GO.FactFeeds [1]76CC.3A14::11/28/2014-10:39:05.964 [Event]:INFO: ssoDetail.field=FootfallFILEReceiveLocation

[1]76CC.3A14::11/28/2014-10:39:05.964 [Event]:INFO: Filename matches regex [1]76CC.3A14::11/28/2014-10:39:05.982 [Event]:INFO: Caught Exception [1]76CC.3A14::11/28/2014-10:39:05.982 [Event]:INFO: exBase.Message=Requested SSO value FootfallFILEReceiveLocation

is not available within affiliate app BTS.GO.FactFeeds

Parameter name: valueName [1]76CC.3A14::11/28/2014-10:39:05.990 [Event]:ERROR: WorkflowComponent Exception Summary:

Timestamp: 28/11/2014 10:39:05.984 Machine Name: 000ALIEN004 Assembly Full Name: Microsoft.BizTalk.CAT.BestPractices.Framework, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8f2a5bf0cda0e36b Assembly Version: 1.0.0.0 App Domain Name: _XDomain_3.0.1.0_0 Application Base Path: C:\Program Files (x86)\Microsoft BizTalk Server 2013\ Windows Identity: GOOUTDOORS\tom.cruise

Exception Information Details:

Exception Type: System.ArgumentException Message: Requested SSO value FootfallFILEReceiveLocation

is not available within affiliate app BTS.GO.FactFeeds

Parameter name: valueName ParamName: valueName TargetSite: System.String ReadString(System.String, System.String) Source: SSOSettingsFileReader HResult: -2147024809

Stack Trace Information Details:

at SSOSettingsFileManager.SSOSettingsFileReader.ReadString(String affiliateApplication, String valueName)

at BTS.GO.Core.Orchestrations.ProcessEmails.segment2(StopConditions stopOn)

at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception& exp)

So, it can be seen from the trace that I'm using an affiliate app name of "BTS.GO.FactFeeds" and a field name of "FootfallFILEReceiveLocation". These values were entered into SSO by the BTDF.

I've create a simple winforms app with the following code behind a button click:

MessageBox.Show(SSOSettingsFileReader.ReadString("BTS.GO.FactFeeds", "FootfallFILEReceiveLocation"));

This works and retrieves the expected value from SSO. I have tried running the winforms app exe directly (no from VS) when run as the same identity as the BizTalk host instance - it works in each case.

My question is, why is the winforms app able to retrieve the value but the orchestration is not?

Any suggestions would be appreciated! Thanks, Rob Bowman

This work item was migrated from CodePlex

CodePlex work item ID: '10788' Vote count: '1'

tfabraham commented 6 years ago

[BizTalkers@11/28/2014] Found the cause of the problem - and it's not BTDF.

The values for the affiliate and fieldName variables I was pulling from a SQL db using SqlDataReader, this was appending CR LF at the end of the variable's value.

I guess it may be of use to leave this here in case anyone else falls into the same trap.

tfabraham commented 6 years ago

[UnknownUser@11/28/2014]

tfabraham commented 6 years ago

Issue closed by tfabraham with comment Not a BTDF issue

Reason closed Not BTDF