好的伙计们,我打电话给你的综合智力。我有一个带有Silverlight应用程序的Web应用程序,可以调用ria服务。 ria服务是在Web应用程序中定义的,其他一切都只是花花公子。
问题是这个。
据我所知,为了让silverlight应用程序能够交谈并知道ria服务是什么,您需要为该服务添加服务引用。服务引用定义了ria服务并设置了连接绑定。它添加的文件之一是ServiceReference.ClientConfig
,其中包含连接绑定。在本应用程序开发过程中,这就是它的设置方式。它在本地和开发服务器上运行得非常好。
不幸的是,在部署到客户端内部服务器时存在问题。此时我正在进行其他项目,而我的同事继续部署。他很快就对正在发生的愚蠢错误感到沮丧,并招募了一些帮助。这个开发进来了,尽管它已经工作了,但是为了这样做,他从silverlight项目中删除了服务引用,但是留下了ServiceReference.ClientConfig
指向Web应用程序中服务的位置(但就是这样) ,没有关于服务做什么的定义或解释,我不知道Silverlight应用程序应该如何知道如何使用它。)。这在我的同事工作站上非常完美,并且已经将此版本部署到客户端服务器上。
当我打开项目时,它根本不运行。原因是它不知道我在代码中使用的是什么服务。具体来说,它不知道这是什么(名称已更改以便澄清):
Imports SilverlightApp.ServiceReference.WebApp.Service
我已经清理了解决方案,完全删除并从源代码控制中获取最新信息,首先构建了Web应用程序,并确保asp.net dev服务器正在运行,以便ServiceReference.ClientConfig
中的地址正确解析。但是,唉,它仍然不知道Imports SilverlightApp.ServiceReference.WebApp.Service
是什么。
因此,为了让它在我的工作站上工作,我添加了ServiceReference,但保留了当前的连接绑定,以便它与Web应用程序Web配置中的端点匹配。并将import语句更改为Imports SilverlightApp.ServiceReference
,一切正常。
这种疯狂的原因是什么?!?!
答案 0 :(得分:2)
您所谈论的所有内容都与WCF服务有关,而与WCF RIA服务无关。在客户端应用程序中使用它们时,它们的工作方式完全不同。
WCF服务需要服务引用和ServiceReference.ClientConfig。
WCF RIA服务没有。 WCF RIA服务的链接在底部Silverlight选项卡的silverlight项目属性中设置。构建时,它将在Generated_Code文件夹中生成客户端上下文代码。显示所有文件,您将看到它。
希望有帮助吗?
凯文