.net和silverlight中的相对Web服务引用
问题描述:
答
您需要编写自定义代码才能执行此操作。有两部分自定义代码:1)ASP.Net Silverlight主机站点需要通过初始参数传递Silverlight应用程序的服务地址; 2)应用程序启动事件需要处理初始参数以将服务指向正确的地址。
ASP.Net主机站点上的第1部分代码。有3个步骤在这里:
A)包含的服务名称
<appSettings>
<clear/>
<add key="MyServiceName" value="MyService.svc"/>
</appSettings>
B)在页面加载事件获取网页的基地址添加一个web.config值,附加服务地址它,并将其保存到一个页面级可变
// 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)在承载Silverlight控件的页面设置初始页面级变量作为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>
该键为
<param name="InitParams" value="<%=InitParams%>" />
第2部分挂钩的应用程序启动事件和初始化为您服务,在App.xaml.cs文件中的地址。
private void Application_Startup(object sender, StartupEventArgs e)
{
string serviceAddress = e.InitParams["ServiceAddress"];
// INSERT CODE TO INITIALIZE YOUR SERVICE HERE
}
答
您可以编写自己的代码来拉出当前服务的服务器路径,并预先考虑到服务你想用。
有用的答案,非常有帮助! – 2010-10-12 19:19:12