需要指导如何在Silverlight 4中调用WCF服务

5
好的,各位,我呼唤你们的智慧。我有一个带有Silverlight应用程序的Web应用程序,该应用程序调用了一个RIA服务。 RIA服务在Web应用程序中定义,其他所有内容都很好。
问题是这样的。
据我所知,为了让Silverlight应用程序与RIA服务交流并知道它是什么,您需要为该服务添加服务引用。服务引用定义RIA服务并设置连接绑定。它添加的文件之一是ServiceReference.ClientConfig,其中包含连接绑定。在开发此应用程序的过程中,就是这样设置的。在本地和开发服务器上都可以完美运行。
不幸的是,在部署到客户内部服务器时出现了问题。此时,当我的同事继续部署时,我已经转向其他项目。他很快对出现的愚蠢错误感到沮丧,并寻求帮助。这个开发人员进来了,尽管让它工作了,但为了这样做,他从Silverlight项目中删除了服务引用,但保留了指向Web应用程序中服务位置的ServiceReference.ClientConfig(但仅如此,没有定义或解释服务的作用,我也不确定Silverlight应用程序应该如何使用它..)。这在我的同事的工作站上完美运作,并且他已成功将此版本部署到客户端服务器上。
当我打开项目时,它根本不运行。原因是我在代码中使用的服务是未知的。具体来说,它不知道这个位置在哪里(名称已更改以进行澄清): Imports SilverlightApp.ServiceReference.WebApp.Service 我已经清理了解决方案,完全从源代码控制中删除并获取了最新版本,首先构建了Web应用程序,并确保ASP.NET开发服务器正在运行,以便ServiceReference.ClientConfig中的地址正确解析。但是,遗憾的是,它仍然不知道Imports SilverlightApp.ServiceReference.WebApp.Service是什么。
所以,为了让它在我的工作站上正常工作,我添加了ServiceReference,但保留了当前连接绑定,以使其与Web应用程序Web配置文件中的端点匹配。并将导入语句更改为Imports SilverlightApp.ServiceReference,一切都很好。
这种疯狂的原因是什么?!?!
1个回答

2
你所讨论的所有内容都与WCF服务有关,而不是WCF RIA服务。当在客户端应用程序中使用它们时,它们的工作方式完全不同。
WCF服务需要一个服务参考和ServiceReference.ClientConfig。
WCF RIA服务则不需要。将链接到WCF RIA服务设置在Silverlight选项卡底部的Silverlight项目属性中,构建后会在Generated_Code文件夹中生成客户端上下文代码。展示所有文件,你就会看见它。
希望这有所帮助?
凯文

啊哈。那就有很多道理了。我的同事有Generated_WCF_Code文件夹,而我没有。然而,我已经在项目属性中设置了链接,但它仍然不让我构建。 - keynone
构建错误是什么?您是否安装了所有的WCF RIA服务工具?此外,请查看您的网站项目设置,并检查您的Silverlight应用程序是否在Silverlight应用程序选项卡中列出。 - Kevin Westwood
当我尝试实例化服务客户端并调用它时,会出现构建错误。在我的工作站上打开项目时,导入引用无法解析。是的,Web 项目设置是正确的,而且我有 RIA 服务工具包。谢谢你的帮助 :) - keynone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接