2012-02-27 80 views
0

我在我的Silverlight应用程序中有一个名为WCF_Service的WCF服务引用。然而,每当我想在我的代码使用它,我必须指定的URI这一提法:为什么我必须指定一个Uri作为我的服务参考?

Uri uri = new Uri(HtmlPage.Document.DocumentUri, "WcfDataService.svc"); 
WCF_Service.Entities context = new WCF_Service.Entities(uri); 

为什么我需要指定URI?我知道这是必要的,但服务引用不知道此服务位于何处?

回答

1

确实,服务引用包含一个Uri,它在添加它时使用,它在您更新引用时自动重用 - 这只是为了方便。

您可以从许多不同的端点使用相同类型的服务 - 这只是重新配置要使用的Uri(即从测试切换到生产服务器)的问题。这就是为什么作为消费者必须提供终点 - 想象使用来自两个不同服务器的相同服务 - 在这种情况下,您不希望将两个引用添加到您的项目中 - 对吗?

+0

这很有道理。为什么它不需要Uri,如果它是传统的Web服务而不是WCF呢? – Justin 2012-02-27 19:28:10

+0

如果我没有正确记住asmx,它默认为在你的web.config中配置的引用/ Uri,但你可以通过设置Url属性覆盖它 - 我会争辩你几乎总是想这样做。 – BrokenGlass 2012-02-27 19:29:32

相关问题