Warning on building biztalk application: 'Vali

2019-07-31 09:23发布

问题:

So, new hand at Biztalk here, and I'm trying to get a working sample process slapped together. Almost all of the files I'm going to have to work with come in as raw TXT flat files, and I've walked one of them through the flat file schema wizard to get myself a good solid schema. I also put together an XML version of the sterilized data I want and mapped the two together. So long as that's all I try to do, Biztalk seems to have no problems.

However, when I add in a receive pipeline with the flat file disassembler component and set the Document Schema to my earlier defined flat file schema, I get the following warning on build in Visual Studio:

Visual Studio 2012\Projects\Sample EDI Process 2\Sample EDI Process 2\ReceiveFFPipe.btp : warning BTP0008: Validate call on component 'Flat file disassembler' failed.

At first I just ignored it since it's only a warning, but trying to use the Pipe on a port in my deployment environment prompts it to suspend every instance that calls it with the following error:

A message received by adapter "FILE" on receive location "Receive Location1" with URI "C:\Sample EDI Folder\*.txt" is suspended. 
Error details: There was a failure executing the receive pipeline: "Sample_EDI_Process_2.ReceiveFFPipe, Sample EDI Process 2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eedeea09943f22ae" Source: "Unknown " Receive Port: "ReceivePort1" URI: "C:\Sample EDI Folder\*.txt" Reason: Failed to get pipeline: Sample_EDI_Process.ReceiveFFPipe, Sample EDI Process 2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eedeea09943f22ae. Please verify that the pipeline strong name is correct and that the pipeline assembly is in the GAC.  

And please forgive the horrible naming conventions, I was just trying to get proof of concept.

Anyway, I am writing my code on my local machine and deploying it to another, and assumed that maybe the build was messing up because the solution assembly was not in my local GAC and the flat file document schema wasn't being picked up. However, using gacutil to install it on my machine as well didn't seem to solve anything. I can see the pipeline just fine in the Biztalk Administration Console. It doesn't actually produce an error when deployed, only a warning. I've got my solution set up to always redeploy and always install to the GAC. And I haven't had any trouble performing these actions in the biztalk virtual labs. I even tried completely dropping the solution and making another one from scratch, no dice.

Also, while I not running a local instance of Biztalk, I do have it installed on my local machine. I just deploy the solution elsewhere.

If there's any help you can give, I would greatly appreciate it.

回答1:

There are several reason Validate will fail, including:

  1. The Schema is not a Flat File Schema
  2. The fully qualified name cannot be resolved (if it's in a references Assembly, you may have Rebuild, then close and open Visual Studio)

You can't ignore this error, otherwise, the project will not Build.

The second means the Type name (fully qualified .Net Type name) cannot be resolved. The Assemblies with the Pipeline and Schema must be in the GAC on the runtime machine. When you Add Resource in BizTalk Administrator, you have to explicitly check "Add to global assembly cache on add resource".

However, I strongly recommend you don't pursue this path. You will find developing BizTalk apps without a local instance of BizTalk Server (full stack, including Host Instances) frustratingly unproductive. Deploy is not supported to remote machines which is the biggest factor. Yes, it's available and may appear to do something, but it does not work.