4 Stimmen

Wcf-Konfiguration für Silverlight

In meiner Silverlight-Anwendung verwende ich einen Dienstverweis auf einen wcf-Dienst. Nachdem ich dieses Projekt auf meinem Test-IIS bereitgestellt habe, konnte ich keine .config-Datei sehen, in der alle Endpunktinformationen gespeichert sind. Diese ServiceReferences.ClientConfig ist im xap-Paket enthalten. Wie würde ich es dann auf dem Server des Kunden bereitstellen? Ich brauche eine Möglichkeit, den Endpunkt dort zu konfigurieren. Wie machen Sie das?

3voto

vc 74 Punkte 36002

Wenn Sie meinen, den Endpunkt zu konfigurieren, nachdem die Anwendung veröffentlicht wurde, gibt es keine Möglichkeit, dies auf einfache Weise zu tun (Sie könnten die xap-Datei entpacken, die ServiceReferences.ClientConfig ändern, erneut packen ...)

3voto

Aardvark Punkte 8379

Anstatt zu versuchen, die Bearbeitung der Clientconfig-Datei in der XAP zu unterstützen, gibt es einen anderen Ansatz.

Fügen Sie die Adresse des Webservice-Endpunkts zu den Silverlight InitParams in der HTML-Seite hinzu, die die Silverlight-Anwendung hostet. Vielleicht setzen Sie die InitParams dynamisch über ASP.NET. Verwenden Sie diese Adresse programmatisch, wenn Sie den clientseitigen Service-Proxy erstellen.

Eine andere Möglichkeit ist, davon auszugehen, dass sich der Webdienst immer in einem relativen Verzeichnis zur Hosting-Seite befindet. Ich benutzte etwas wie:

new Uri(HtmlPage.Document.DocumentUri, new Uri("./MyService/MyService.svc", UriKind.Relative)); 

Die Kombination beider Optionen funktioniert gut, wenn die InitParams fehlen, verwende ich einen relativen Pfad zum bekannten Speicherort (hilfreich bei der Bereitstellung/Produktion). Wenn die IntiParams einen Endpunkt haben, verwende ich diesen (hilfreich beim Debuggen/Testen).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X