WCF数据服务:为什么在每个数据上下文中都需要URI,以及它在典型的分层体系结构中的位置



我正在考虑在我的一个项目中实现WCF数据服务。经过广泛的研究,我有一些问题有待回答。如果有人能帮我?

  1. 当我们传递具体的特定于数据的操作(尽管使用URI通过HTTP)时,为什么在大多数文档中,WCF数据服务都在UI层旁边?它不应该是比UI和EDM之间的接口更高级别的抽象吗?

  2. 为什么需要传递URI来建立上下文?URI不是被传递到ADD SERVICE REFERENCE(或DATASVCUTIL)中以生成客户端代理类吗?为什么每当需要建立上下文时都会出现这种冗余?

  3. 如果我的服务URL更改了怎么办?如何动态确定此服务URL?例如,假设我在http://localhost:8443/project1/WCFSERVICE1.如何在运行时动态获取此URL(因为VS下的端口正在更改)????

  4. 我看到了一些使用DataServiceRequest和DataServiceResponse的例子;有时它们不是,并且通过CREATEQUERY或EXECUTE直接执行查询。一行有什么区别??

  5. 如何通过公司网络代理访问远程服务?我知道我们可以将默认凭据传递给webrequest,但如何使用wcf数据服务客户端代理类来实现这一点?

附言:目前,我已经在visualstudio中配置了一个静态端口。但是,如何动态获取此端口?感谢你的帮助。

刚刚看到这一点,我相信到目前为止,您已经得到了大多数问题的答案,但这里是。

你的问题3是你标题问题的答案。在构造函数中传递URI意味着您在数据服务的位置方面具有更大的运行时灵活性。因此,在我的案例中,我将端口和服务器名称作为应用程序设置,可以在运行时进行修改,而无需修改应用程序。希望这能有所帮助。

最新更新