为什么我的Silverlight应用程序无法使用WCF从实时站点上的sql加载数据?

时间:2009-04-06 14:30:46

标签: wcf silverlight

当我在本地构建时,我的silverlight应用程序会从SQL加载数据,但是当我将其上传到实际站点时,它只会等待数据加载但没有显示错误。它一直工作到昨天,我担心我可能在某处更改了设置,现在我无法访问它看起来的数据?

更新1:服务引用似乎有问题。每次我更新它们,它将清除ServiceReferences.ClientConfig文件,然后程序不会构建。

更新2:我尝试过清洁和建筑,但仍然存在同样的问题。

更新3:尝试访问实际网站上的服务引用时发现错误:

此集合已包含方案http的地址。此集合中每个方案最多只能有一个地址。 参数名称:item 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。

异常详细信息:System.ArgumentException:此集合已包含带有方案http的地址。此集合中每个方案最多只能有一个地址。 参数名称:item

1 个答案:

答案 0 :(得分:2)

听起来你的应用程序在等待什么,它会在30秒后超时吗?如果是,请检查SQL连接字符串。

如果Silverlight和SQL之间存在另一层(例如Web服务),则设置连接测试以确保Silverlight实际到达SQL ...

您是否意外更换了您的live web.config文件?如果是这样,请尝试恢复旧的web.config,因为它可能有一个与您的服务器不兼容的设置。

回复:更新1:

有错误吗?如果是这样,请粘贴它。另外,请将有问题的配置文件粘贴到pastebin上,并从此处链接到它。

回复:更新3:

错误“此集合已包含带有方案http的地址。”是因为没有明确告诉WCF服务你有多少chosoe来绑定到哪个地址。在这种情况下,看起来IIS正在使用多个URL,例如,考虑这些虚构的地址:

  • www.mysite.com
  • mysite.com

...所以除非你告诉它,否则WCF服务不知道该使用哪个。

解决方案是明确定义在WCF服务的web.config(在system.serviceModel节点内)中使用以下配置行的URL。

<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
  <baseAddressPrefixFilters>
    <add prefix="http://www.mysite.com/SomeDirectory/MyService" />
  </baseAddressPrefixFilters>
</serviceHostingEnvironment>

重要:

您应该更新问题标题,以表明WCF参与了您创建的解决方案。