Est-il possible de faire ces relations?Références de service Web relatif dans .net et silverlight
par exemple: webservice.asmx
plutôt que
http://servername/webservice.asmx
Est-il possible de faire ces relations?Références de service Web relatif dans .net et silverlight
par exemple: webservice.asmx
plutôt que
http://servername/webservice.asmx
Pour ce faire, vous devez écrire un code personnalisé. Il existe deux parties du code personnalisé: 1) Le site hôte ASP.Net Silverlight doit transmettre à l'application Silverlight l'adresse de service via un paramètre initial; 2) L'événement de démarrage de l'application doit traiter les paramètres initiaux pour pointer le service vers la bonne adresse.
Partie 1 Code sur le site hôte ASP.Net. Il y a 3 étapes ici:
A) Ajouter une valeur web.config pour contenir le nom du service
<appSettings>
<clear/>
<add key="MyServiceName" value="MyService.svc"/>
</appSettings>
B) Adresse de base de page Web dans en cas de chargement de la page, ajoutez l'adresse de service , et l'enregistrer à un niveau de pages variables
// Page level variable for initial parameters
public string InitParams { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
var serviceAddress =
ConfigurationManager.AppSettings["MyServiceName"];
var baseAddress = Request.Url.GetLeftPart(UriPartial.Authority);
var fullAddress = string.Format("{0}/{1}", baseAddress, serviceAddress);
// Pass parameters to SilverLight Application
InitParams = string.Format(
"{0}={1}",
"ServiceAddress",
fullAddress);
}
C) dans la page qui héberge le contrôle silverlight définir la première à la variable de niveau de la page tel que défini dans B.
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="ClientBin/MySilverlightProject.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="3.0.40624.0" />
<param name="autoUpgrade" value="true" />
<param name="InitParams" value="<%=InitParams%>" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object>
La clé étant ici la
<param name="InitParams" value="<%=InitParams%>" />
Partie 2 Crochet App démarrage événement et activer le service à l'adresse dans le fichier App.xaml.cs.
private void Application_Startup(object sender, StartupEventArgs e)
{
string serviceAddress = e.InitParams["ServiceAddress"];
// INSERT CODE TO INITIALIZE YOUR SERVICE HERE
}
Vous pouvez écrire votre propre code pour retirer le chemin du serveur du service actuel et préfixer au service que vous vouloir utiliser.
Réponse utile, très utile! –