Raycast not colliding

Are there any gotcha's that would prevent a raycast from triggering a collision? In my case, the ray looks fine, as I use Debug.Drawray with the same info and it appears to reach the object and not go through it. Also, Physics.Raycast returns true.

I'm not getting OnTriggerEnter() or OnCollisionEnter() called on the object it hits. This is using the Default Layer and the 'Raycast hit Triggers' checkbox is checked. The target has a Sphere Collider, and is a rigidbody (non-kinematic).

Code, as requested:

void OnCollisionEnter(Collision collision)
{
    Debug.Log("OnCollisionEnter Hit!");
}

void OnTriggerEnter(Collider otherObject)
{

    Debug.Log("OnTriggerEnter Hit!");
}

And the the 'attacker', I tried Linecast too, but same result.

    RaycastHit rh;
    if (Physics.Linecast(origin, dest,out rh))
    {
        Debug.Log("Um, I hit something! " + rh.transform.gameObject.name);
    }

We are hitting the correct object, but no functions are called.

Edit: The functions do trigger if the attacker objects moves into it, just not when the Raycast is used.

Hmmmmmm, I am not quit sure but it seems to me like you are trying to accept a raycast with onCollisionEnter... This wont work.

What you have to do is ether Send message from the attacker... Or just use the rh variable to modify the hit object.... If you only want some objects to do stuff when hit you can use a tag... i.g

if(rh.collider.gameObject.tag == "sometag"){
//do stuff here
}  

Hope this helps!

Edit:

I had a new idea... You could do something like this:

if(rh.collider.gameObject.tag == "sometag"){
   rh.gameObject.SendMessage("RaycastHitting");
}

Then on your receiver script:

function RaycastHitting () {
     //Do stuff here
}

Sorry this is in JS I don't know C# yet :)