PipelineObjects への呼び出しが例外で失敗する

この記事では、アプリケーションから を呼び出すときの PipelineObjects エラーの解決策について説明します。

元の製品バージョン: BizTalk Server 2013、2010
元の KB 番号: 2888774

現象

独自のアプリケーションからアセンブリを PipelineObjects 呼び出すと、次のようなエラーで失敗する可能性があります。

System.Reflection.TargetInvocationException が未処理でした
HResult=-2146232828
Message=Exception は、呼び出しのターゲットによってスローされました。
Source=mscorlib
Stacktrace:
at System.RuntimeTypeHandle.CreateInstance(RuntimeType 型, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached,
RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.Activator.CreateInstance(Type type)
at Microsoft.Test.BizTalk.PipelineObjects.PipelineFactory.CreatePipelineFromType(Type pipelineType)
at MyTestApp.Program.Main(String[] args) in C:\MyTestApp\Program.cs:line 9
at System.AppDomain._nExecuteAssembly(RuntimeAssembly アセンブリ, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback コールバック, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback コールバック, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback コールバック, オブジェクトの状態)
at System.Threading.ThreadHelper.ThreadStart()
InnerException: System.InvalidCastException
HResult=-2147467262
Message=型 'System.__ComObject' の COM オブジェクトをインターフェイス型 'Microsoft.BizTalk.Component.Interop.IComponentTypeInfo' にキャストできません。 IID '{custom IID}' のインターフェイスに対する COM コンポーネントの QueryInterface 呼び出しが失敗したため、この操作は失敗しました。このようなインターフェイスはサポートされていません (HRESULT からの例外: 0x80004002 (E_NOINTERFACE))。
Source=Microsoft.BizTalk.Pipeline
Stacktrace:
at Microsoft.BizTalk.PipelineOM.Pipeline.AddComponent(Stage stage, IBaseComponent realComponent)
At MyPipeline.MySendPipeline..ctor()

原因

PipelineObjects.dllでは、Microsoft .NET Framework ランタイム ライセンス認証ポリシーを呼び出すアプリケーションで使用する必要があります。

解決方法

実行可能な呼び出しPipelineObjectsapp.config を変更して、次<startup>の要素を含めます。

<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" />
    </startup>
</configuration>

詳細

PipelineObjects.dll は、BizTalk Software Development Kit (SDK) で提供され、フォルダー内にある SDK\Utilities\PipelineTools ツールです。

要素の<startup>詳細については、「startup> 要素」を参照してください<