To solve this problem, first we have to know what a trusted host means and why is it so important.
Simply speaking, a trusted host is an evidence that the incoming message do sent from a partner you grant permissions to send you messages. Details are explained in this two articles.
So if the host has been marked as trusted, why the error keep on bothering me ?
We know that a A4RN receives incoming messages via HTTP , which means, incoming message must first processed by the IIS, in this stage, an pre-configured identify is assign to the process according to your website's application pool's identity. Incoming messages are then passed to A4RN receive port(HTTPReceive), which is also a HTTP port, which means, another identify is then assign to the process according to IIS settings.
Now, the HTTPReceive.dll is posting request into the message box with the IIS sepcified user identity, and if this account is not a trusted user account(which means, if this account is different with the one you specified in the Authentication Trusted host setting), then BizTalk denies this message from processing, because the user sending this message in is not a trusted user.
So the solution is to re-configure the IIS application pool identity to a trusted user account in BizTalk.
From IE's Tools menu, select Option, switch to Advence tab, Under the Browse tree node, uncheck [Disable Script Debugging(IE)] and [Disable Script Debugging(Other)], then open your web application from VS2005
- First press F5 to run your web application in debug mod
- From Debug menu item, select Window, then Script Explorer, this bring up a Script Explorer window
- From the explorer window, choose the script source you like to debug and add break point on the it
A Biztalk Isolated host instance configured with the user account was either not running or dose not exist...
This error occurs if when you installing A4RN, there are no trusted host instance configured on your box, hence A4RN installation process could not pick up a trusted user account for further configuration.
The only way I found to solve this error is to uninstall A4RN, then create a new host marked as trusted, the create a new host instance of that trusted host. Then in BizTalk Server Administration consol, I mark the newly created host instance as default host instace.
After all was done, then I reinstall A4RN. And now when configuring A4RN, no compliant will be shown.
In my opion, this is really stupid, they should have ask us for a new trusted user account, not just popup a error message.
So I google for a while and found this error only occurs in the following situation:
- When we are interop debugging. For example when you are invoking Win32 APIs from managed codes
- When does a "property eval" of a method that contains a breakpoint. For example when you are "watching" some variables in the debugger.
I totally match above situations, I am interop debugging and there IS a breakpoint on it. So I simply remove the breakpoint, and the clinet works fine.
There are 3 workarounds to this problem:
- Remove breakpoints
- Disable automatic property eval(ToolsOptions menu in VS2005). Remember that VS automatically calls ToString() method and property getters, so when your watch window is opened, or when you quick watch the code, this will happen.
- Use managed debugging only
Here're steps to cleanup unprocessed message:
- Do IISRESET.
- Stop all BizTalk application and host instances
- Open SQL server management console, browse to [BizTalkMsgBoxDb].
- Execute bts_CleanupMsgbox stored procedure on BizTalkMsgBoxDb
- Execute bts_PurgeSubscriptions stored procedure on BizTalkMsgBoxDb
- Restart Biztalk server
Now your messages are deleted. And you have a emppy message box now :)
public class GenericType
Assembly asm = Assembly.LoadFrom(asmPath);
object o = asm.CreateInstance("GenericTypeNS.GenericType'1[[%TypeName%]]");
Replace %TypeName% to the specificed class name, for example if we want to create an GenericType
object o = asm.CreateInstance("GenericTypeNS.GenericType'1[[System.Int32,
Type [TypeName] already exists in both %ASP.Net Temp Folder%\[AssemblyName.dll] and %ASP.Net Temp Folder%\[AssemblyName.dll]%
This is confirmed a well known bug in ASP.Net.
The reason you got this error is that some of your ASP.Net pages/controls are cross referenced.
Say we have a ASP.Net web application with the following file structure:
If in PageA.aspx references ControlB.ascx in folder Dir_b, and PageB.aspx references ControlA.ascx in folder Dir_a then CS0433 error well be reported.
There are 2 ways to avoid this kind of error, one is to re-structure your file structure to prevent the cross reference. The other one is to add the following configuration setting in your web.config:
The reason we have to disable batch compilation is that when batch compile is enabled (ASP.Net default), ASP.Net compile each folder to an individual dll. So in our case, Dir_A/Dir_B will be compiled into 2 dlls, and it's clearly that they do cross reference.
The Messaging engine failed to process a message submitted by adapter:FILE...
Details:The published message could not be routed because no subscribers were found
This most likely cuase by some missing content properties we forget to promote after we created a new message and return it to the BizTalk engine. If those missing content properties participated in message routing, then the routing failed and you got above error message.
To correct this, we need add following codes in our custom pipeline to ensure every promoted properties in the origional message content is also promoted in newly created message content:
for (int iProp = 0;iProp < originalMsgContext.CountProperties;iProp++)
string systemPropertiesNamespace = "http://schemas.microsoft.com/BizTalk/2003/system-properties";
newMsg.Context.Promote("MessageType", systemPropertiesNamespace, messageType);
BizTalk Server 2006 uses following rules to find out the encoding of a message:
- If Byte Order Mark exists, then the encoding is determined
- If content property BodyPart.CharSet is set, then the encoding is determined
- If xml declaration exists, then the encoding is determined
- If none of above matches, UTF-8 is used
So to change message encoding, here are several ways:
- Add byte order mark
- Set BodyPart.CharSet content property
- Add Xml declaration
So it is NOT enough if you only change the actual data in the stream to specificed encoding, one of the above must be matched!
- BizTalk Server 2006 installed on Machine1
- SQL Server installed on Machine2
- OpWeb installed on Machine1, Using Forms authentication mode
- Both machines in same domain
[Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. Reason: Not associated with a trusted SQL Server connection]
Obviously it's a complaint about the user has no access to the database server. But, why it's trying to connect to database server using the Anonymous Logon ?
When connecion to a database server which using windows authcentication mode from a ASP.Net web applicaiton,
- If impersonation is enabled, the user account used to connect to database server is the use account specificed in impersonate section in web.config.
- If impersonation is disabed, the user account used to connect to database server is which specificed in the application pool which the web application is running under.
So here is my solution:
- Use a Sql server logon instead of a windows account to access the database. You will have to ask your DBA to create a sql logon for you. This is the easist way.
- Use a Windows user account to access the database. To do this,
- Ask your administrator to create an account has similar priveleges with Network Service or ASPNET account.
- Set that account as anonymous access acount in op web if you need the anonymous access to be enabled.
- Ask your DBA to grant database access to that account and [Anonymous Logon] if necessary.
- Or, if you dont want to mess up with the IIS configuration, you can simply set the impersonate on in your web.config
Basicly these posts is about troubles I experience in our project , and the solutions or walk around I found. And maybe we can discuss those troubles and find a better solution here.
- ► 2016 (19)
- ► 2008 (30)
- ► 八月 (4)