คำตอบ Callout 3.0 to 4.0

  • 13 พฤศจิกายน 2551 15:28
     
     
    Hi,

    Trying to run a callout which works in 3.0 in 4.0.

    I created a very simple log function which simply writes a 'hello world' string to a text file in a folder in which the NetworkService account has full permission. This log function is called on the PreUpdate event handler in the Callout dll.

    I've done the following:

    1. Copied the appropriate .dll to the C:\Program Files\Microsoft CRM\Server\bin\assembly directory
    - it also contains the applicable callout.config.xml file.

    2. IISReset + restart Async service.

    When I specify a valid entity in MSCRM in the callout.config.xml, I receive the generic error stating I need to contact folk on this forum. [i.e. it is reading my callout.config.xml and failing to run the callout]

    * No log file is written to the log directory
    * No error message in the event log.

    --If I specify an incorrect namespace, the user receives a nice detailed error message stating the exact problem. Additionally I receive an error in the application log. If I specific an incorrect path to my callout .dll, I receive a warning in the application log.

    I receive no error messages at all in 4.0.

    I've also set <add key="DevErrors" value="On" /> in my web.config.


    Could CRM lack permission to write to the event log?


    I do receive the following error after I perform an IISRESET

    Event Type:    Error
    Event Source:    DCOM
    Event Category:    None
    Event ID:    10016
    Date:        13/11/2008
    Time:        17:01:04
    User:        NT AUTHORITY\NETWORK SERVICE
    Computer:    Server1
    Description:
    The machine-default permission settings do not grant Local Activation permission for the COM Server application with CLSID
    {000C101C-0000-0000-C000-000000000046}
     to the user NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20).  This security permission can be modified using the Component Services administrative tool.

    For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

    Thanks,

    Karlo

ตอบทั้งหมด

  • 14 พฤศจิกายน 2551 17:57
     
     คำตอบ
    Update on the resolution...

    1. dload the CRMDiagTool4.0

    (http://blogs.msdn.com/benlec/archive/2008/03/04/crmdiagtool4-for-microsoft-crm-4-0-has-been-released.aspx)

    2. Ran trace and searched for
    “Error Message”

    3. Googled my error "Could not load file or assembly 'Microsoft.Crm.Platform.Callout.Base"

    4. Resolution was to registed this assembly in the GAC. For some reason this was not done during the upgrade.

    Pretty much word for word what I found at :

    http://blog.ctakc.com/2008/04/01/microsoft-crm-callout-stops-working-after-40-upgrade/

    ** As a side note to any MS employees on the MSCRM dev team Smile - I understand the reason behind obfuscating error messages to users as potentialy this could be a security risk. What I don't understand is why such an error would not apprear in the Eventlog. By default only a user with admin privilidges may write write an event to the event log (another pet gripe of mine.) As such surely you would like a systems administrator to be able to quickly identify and rectify such an error?

    Oh well, many thanks for dev's of CRMDiag aswell as friendly folk that blogged this !