当我在本地构建时,我的silverlight应用程序会从SQL加载数据,但是当我将其上传到实际站点时,它只会等待数据加载但没有显示错误。它一直工作到昨天,我担心我可能在某处更改了设置,现在我无法访问它看起来的数据?
更新1:服务引用似乎有问题。每次我更新它们,它将清除ServiceReferences.ClientConfig文件,然后程序不会构建。
更新2:我尝试过清洁和建筑,但仍然存在同样的问题。
更新3:尝试访问实际网站上的服务引用时发现错误:
此集合已包含方案http的地址。此集合中每个方案最多只能有一个地址。 参数名称:item 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。
异常详细信息:System.ArgumentException:此集合已包含带有方案http的地址。此集合中每个方案最多只能有一个地址。 参数名称:item
答案 0 :(得分:2)
听起来你的应用程序在等待什么,它会在30秒后超时吗?如果是,请检查SQL连接字符串。
如果Silverlight和SQL之间存在另一层(例如Web服务),则设置连接测试以确保Silverlight实际到达SQL ...
您是否意外更换了您的live web.config文件?如果是这样,请尝试恢复旧的web.config,因为它可能有一个与您的服务器不兼容的设置。
有错误吗?如果是这样,请粘贴它。另外,请将有问题的配置文件粘贴到pastebin上,并从此处链接到它。
错误“此集合已包含带有方案http的地址。”是因为没有明确告诉WCF服务你有多少chosoe来绑定到哪个地址。在这种情况下,看起来IIS正在使用多个URL,例如,考虑这些虚构的地址:
...所以除非你告诉它,否则WCF服务不知道该使用哪个。
解决方案是明确定义在WCF服务的web.config(在system.serviceModel节点内)中使用以下配置行的URL。
<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
<baseAddressPrefixFilters>
<add prefix="http://www.mysite.com/SomeDirectory/MyService" />
</baseAddressPrefixFilters>
</serviceHostingEnvironment>
您应该更新问题标题,以表明WCF参与了您创建的解决方案。