locked
Fehler beim Zugriff auf WebService RRS feed

  • Frage

  • Hallo Zusammen.

    Ich habe eine Silverlight Anwendung erstellt, welche in der Entwicklungsumgebung einwandfrei läuft. Nun habe ich die Anwendung auf dem Server (2008) veröffentlicht und kann von meinem Client auch darauf zugreifen.

    Sobald ich nun aber etwas Anzeigen möchte, sprich auf den WebService zugreife, erhalte ich folgende Fehlermeldung:

    Fehler beim Senden einer Anforderung an den URI "http://localhost:1218/....svc". Ursache ist möglicherweise, dasss ohne die entsprechende domänenübergreifende Richtlinie oder mit einer nicht für SOAP-Dienste geeignete Richtlinie domänenübergreifend auf einen Dienst zugegriffen wurde. Möglicherweise müssen Sie sich an den Besitzer des Dienstes wenden, damit eine domänenübergreifende Richtliniendateiveröffentlicht und das Senden von sich auf SOAP beziehenden HTTP-Headern zugelassen wird. Dieser Fehler kann auch durch Verwendung von internen Typen im Webdienstproxy ohne das InternalsVisibleToAttribute-Attribut verursacht werden.

    Weis vllt. jemand woran das liegt oder was ich vllt. vergessen haben könnte?

    Bin für jede Hilfe dankbar!!!

    MFG
    Freitag, 9. Oktober 2009 07:32

Antworten

  • Man kann der Endpoint-Eigenschaft der Service-Instanz einen anderen Endpoint zuweisen. Die Information dazu kann man aus einer separaten Datei holen, z.B. aus einer XML-Datei, die z.B. ein serialisiertes Objekt ist und vom Anwender eingestellt werden kann.

    -- 
    Peter 
    Freitag, 6. November 2009 13:22

Alle Antworten

  • Du musst den Zugriff zulassen über eine ClientAccessPolicy.xml im Kernverzeichnis ( der WebSite). Der Inhalt könnte so aussehen (für Zugrif "alle"):

    <?xml version="1.0" encoding="utf-8" ?>
    <access-policy>
    	<cross-domain-access>
    		<policy>
    			<allow-from http-request-headers="*">
    				<domain uri="*" />
    			</allow-from>
    			<grant-to>
    				<resource path="/" include-subpaths="true"/>
    			</grant-to>
    		</policy>
    	</cross-domain-access>
    </access-policy>
    --
    Peter
    Freitag, 9. Oktober 2009 20:44
  • Hallo Peter,

    danke für die Antwort. Den Zugriff habe ich genau so defienert.
    Zudem habe ich noch die crossdomain.xml drin, die so aussieht:

    <?xml version="1.0"?>
    <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
    <cross-domain-policy>
      <allow-http-request-headers-from domain="*" headers="*"/>
    </cross-domain-policy>

    Leider funktioniert es damit nicht. Gibt es sonst noch etwas was man falsch machen könnte, oder nach was ich sonst noch schauen kann?


    Gruß TB
    Dienstag, 13. Oktober 2009 10:25
  • Hallo ThunderBold,

    Schau Dir die folgende Diskussion an. Vielleicht findest Du etwas dass Dir weiter helfen kann.

    http://stackoverflow.com/questions/1312109/communicationexception-when-calling-a-wcf-from-silverlight

    Grüße,

    Robert

    Dienstag, 27. Oktober 2009 14:40
  • Hallo Robert,

    danke für den Link. Habe es so versucht jedoch läuft meine Anwendeung trotzdem nicht...

    Hättest du mir vllt. noch nen guten Link wie man den WebService auf dem IIS  genau veröffentllicht?
    Vielleicht liegt es daran :-(

    Danke und gruß TB
    Mittwoch, 28. Oktober 2009 15:23
  • Hallo ThunderBold,

    Vielleicht können Dir die folgenden Artikel weiterhelfen:

    Debuggen von Diensten für Silverlight-Anwendungen à http://msdn.microsoft.com/de-de/library/dd470100(VS.95).aspx

    http://www.aspnetzone.de/forums/thread/213427.aspx

    http://www.mycsharp.de/wbb2/thread.php?postid=3568184

    Grüße,

    Robert

    Donnerstag, 29. Oktober 2009 14:26
  • Hallo ThunderBold,

    Hat Dir die Antwort geholfen?

    Grüße,
    Robert

    Dienstag, 3. November 2009 12:13
  • Hallo ThunderBold,

    Ich gehe davon aus, dass die Antworten Dir weitergeholfen haben.
    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    Grüße,
    Robert

    Mittwoch, 4. November 2009 12:18
  • Hallo Robert,

    entschuldige die späte Antwort.

    ALso es war so das der Zugriff auf die Datenbank nicht funktioniert hat. Das habe ich nun behoben und  nun funktioniert alles einwandfrei.

    Danke für eure Hilfe!!!

    Nun habe ich aber noch eine Frage dazu:

    In der ServiceReference.ClientConfig (die in der .xap Datei liegt) muss ich ja die Adresse http://localhost:1234/Service/Service.svc anpassen.
    In meiner HTML Seite gebe ich ja den Pfad zur .xap Datei an, damit die Silverlight Anwendung richtig läuft.

    Wenn ich meine Anwendung nun an einen Kunden ausliefern würde müsste er ja erst folgende Schritte gehen bis die Anwendung läuft:

    - xap Datei in zip umbenennen
    - zip Datei entpacken
    - Adresse in der ServiceReference.Clientconfig anpsaaen
    - Daten wieder zippen
    - zip Datei in xap umbenennen


    Nun wollte ich wissen ob man die ServiceReference.ClientConfig nicht auslagern kann, so das sie direkt neben der xap Datei im selben Ordner liegt und dies dann in der Html Datei mit angebe, damit der Kunde nur einen der fünf Schritte gehen muss?

    gruß ThunderBold

    Freitag, 6. November 2009 11:10
  • Man kann der Endpoint-Eigenschaft der Service-Instanz einen anderen Endpoint zuweisen. Die Information dazu kann man aus einer separaten Datei holen, z.B. aus einer XML-Datei, die z.B. ein serialisiertes Objekt ist und vom Anwender eingestellt werden kann.

    -- 
    Peter 
    Freitag, 6. November 2009 13:22