none
Webservice nur lokal erreichbar?! RRS feed

  • Frage

  • Hi,


    ich hab da ein Problem, dass mich fast den Verstand kostet:
    Ich habe einen Webservice geschrieben (eigentlich ist das übertrieben ausgedrückt; es ist nämlich nur das "Hallo Welt"-Beispiel)

    Ich hab daraus also eine DLL gemacht, sie ins bin-Verzeichnis von CRM gelegt und unter AppWebServices eine asmx-Datei erstellt (nach Vorbild, der anderen darin liegenden Dateien).

    Danach habe ich einen JavaScript-Aufruf hinter das ON-SAVE-Event einer Entität gelegt.

    So weit, so gut.

    Wenn mein CRM direkt auf dem Server aufrufe funktioniert alles wunderbar.

    ABER wenn ich mein CRM von einem Client aus ausführe (und das ist natürlich der Regelfall), dann bekomm ich folgende schöne Meldung:

    "Permission denied"


    Kann mir jemand einen Tipp geben worn das liegen könnte?



    Grüsse aus dem kalten deutschen Süden!


    Felix




    Dienstag, 15. Dezember 2009 10:35

Antworten

  • Hallo und Danke an alle so weit!

    Ich habe mir jetzt anderweitig geholfen:

    Es lag in irgendeinerweise am HTTP-Post. Warum auch immer funktionierte der nur solange ich direkt auf dem Server war.

    Mein Workaround:

    Ich bin auf SOAP umgestiegen und voila schon habe ich keine Probleme mehr!!!


    Trotzdem danke an alle, die sich ihre wertvolle Zeit genommen haben.


    Gruß!
    Donnerstag, 17. Dezember 2009 09:21

Alle Antworten

  • Hi Felix

    ist vielleicht eine blöde Frage, aber: Stimmt die URL zu deinem Webservice oder hast Du da nach wie vor localhost oder sowas drinstehen...?

    Gruss Peter
    Dienstag, 15. Dezember 2009 14:47
  • Hallo Peter,


    die Idee war gut, aber so schlau war ich auch schon. Nein, es steht die IP des Server drin. Damit lassen sich sogar evtl. Probleme mit DNS ausschließen.
    Was ich seltsam finde ist folgendes:

    Wenn die den kompletten Pfad bzw. die Url zum Webservice im Browser aufrufe bekomme ich lokal Beispiele wie es eingetragen werden muss für SOAP 1.1, SOAP 1.2 und
    HTTP POST.

    Wenn ich das gleiche vom Client aus aufrufe bekomme ich nur SOAP 1.1 und SOAP 1.2 angezeigt.

    Da ich HTTPPost benutze könnte darin das Problem liegen?!


    Gruss!

    Dienstag, 15. Dezember 2009 15:14
  • Hi Felix

    ich arbeite eigentlich nie direkt mit HTTP POST, darum fische ich hier auch im Trüben, da kann jemand anders vielleicht besser helfen.
    Vielleicht liegts ja daran, dass CRM einen Custom Soap Header benützt (dies ist auch der Grund für die Inkompatibilität mit WCF)?
    Schau doch mal auf
    http://blogs.msdn.com/lezamax/archive/2008/09/24/silverlight-2-and-crm.aspx
    http://blogs.msdn.com/lezamax/archive/2008/11/05/sample-silverlight-2-and-crm.aspx
    http://blogs.msdn.com/girishr/archive/2008/09/03/connecting-silverlight-to-dynamics-crm.aspx

    Hier wird ein Proxy generiert, welcher den Custom Soap Header erstellt. Nicht zu vergessen auch die clientaccesspolicy.xml ins webroot zu stellen. (Vielleicht reicht in deinem Fall ja schon alleine die clientaccesspolicy.xml. In den Links findest Du im Sourcecode ein entsprechendes Beispiel.)

    Wie gesagt, ich fische im Trüben, aber vielleicht hilfts...

    Gruss Peter
    Mittwoch, 16. Dezember 2009 05:47
  • Hallo Felix,

    kann es sein, dass Du die Berechtigungen für den WebService bearbeiten musst? "Permission denied" deutet zumindest darauf hin. Ruf doch mal von einem Client die URL des WebServices direkt im InternetExplorer auf. Hier solltest Du zumindest die Dienstbeschreibungen sehen können.

    Die Berechtigungen für den WebService legt ist im IIS-KonfigTool fest. Hier mit der rechten Maustaste ein Klick auf den Ordner, in dem der WebService liegt, machen und dann auf Berechtigungen klicken. Hier müssen nun die Benutzer bzw. Gruppen eingetragen werden, die den Webservice aufrufen können.

    Schöne Grüße aus Bayern Heiko Heinrich-Nestler XING: http://www.xing.com/profile/Heiko_HeinrichNestler
    Mittwoch, 16. Dezember 2009 08:11
  • Hallo und Danke an alle so weit!

    Ich habe mir jetzt anderweitig geholfen:

    Es lag in irgendeinerweise am HTTP-Post. Warum auch immer funktionierte der nur solange ich direkt auf dem Server war.

    Mein Workaround:

    Ich bin auf SOAP umgestiegen und voila schon habe ich keine Probleme mehr!!!


    Trotzdem danke an alle, die sich ihre wertvolle Zeit genommen haben.


    Gruß!
    Donnerstag, 17. Dezember 2009 09:21