I am using BizTalk 2010.
I would like to search the history of a receive location or Send Port, to see when they were enabled and when disabled. I have access to BizTalk database to run queries. If also I could see for which reason they were disabled it would be great.
There is - as of yet - no auditing support within BizTalk Server itself unfortunately. Up to BizTalk Server 2013 R2
There are however several monitoring tools built on top of BizTalk Server which will give you a similar experience. However, be aware that these will not be able to detect and/or state a reason why a port/location was started/unenlisted/stopped when this happens straight into the BizTalk Admin Console, instead of the tool.
I don't want to state a preference of some tool, but one of the tools I know, which is capable of this, is BizTalk360 - http://www.biztalk360.com/ This is quite a well known tool within the community. However, it is a licensed tool.
I do not know about any open source/free tools which are capable of the same things.
FYI: I don't have any affiliation with them whatsoever. If there are more tools capable of doing so, please let me know in the comments, and I will add them here as well.