BizTalk doesn't see any of my GAC'd Assemblies
Folks, I realize this may look like the usual "you didn't restart your host instance" problem.. but there's more to it than that. I have a BizTalk application that consists of a couple Schema Assemblies, a pipeline Assembly, some maps, etc. I use Visual Studio 2010 to deploy this to BTS2010. My Assemblies all appear in the GAC - my schemas, my pipeline, etc. The schemas appear in the BT application, as does the pipeline. All my maps appear in the BT application.
When I go to send a message through using my custom pipeline, I get the "Failed to get pipeline" message complaining about strong names and GAC. When I don't use the pipeline and I just try and go right to the message box with a message, it complains that it can't load the doc spec for my schema and again complains about the GAC.
I have verified a few hundred times that the Assemblies are actually in the GAC and I have restarted (including stopping it altogether) the host instance a few dozen times.
Is there any other quirky thing that would make BizTalk unable to load my stuff from the GAC, even though it appears as though it's there AND I've r开发者_JS百科estarted the host instance?
Here are some things to check:
- Make sure that you don't have multiple copies/versions of the same assembly deployed to BizTalk or to the GAC.
- Verify that your assemblies are actually in the appropriate BizTalk application and/or that any parent assemblies (that create dependencies) that might be in other BizTalk applications are set as References in the BizTalk application's properties.
- I have found that the most reliable way to view whether or not an assembly is in the GAC is with gacutil.exe, e.g., from a Visual Studio (or Windows SDK) command prompt, use the command
gacutil.exe /l
. To output the results to a file, just dogacutil.exe /l > c:\gac.txt
. Then you can search through the output to find your assemblies. Maybe you can manually GAC each assembly usinggacutil /if assemblyname.dll
. The f will force the an existing assembly to be overwritten. - In the project properties for each BizTalk project in your BizTalk application, look at the Deployment properties and make sure that both
Redeploy
andInstall to Global Assembly Cache
are set totrue
. Also double-check that the correctApplication Name
andServer
are set. - Review your machine's Event Log to see if there might be any other errors showing up that could be occurring before the one referenced in your question.
- Wipe the application from BizTalk completely. Double-check that everything is removed from the GAC using gacutil.exe (as mentioned above). Also double-check that everything is removed from the BizTalk management database by going into the BizTalk Admin Console >> Applications >> All Artifacts >> Resources and ensuring that you don't have anything left there, even after deleting your Application(s) completely. After all that, deploy everything again.
精彩评论