所提供的URI方案“file”无效,期望是“http”。

11

我创建了一个小的Silverlight 4.0 / RIA Services应用并进行了测试。我在家中的一台机器上开发了应用程序,需要将其移动到工作中的生产域。我通过将其推送到源代码库,然后克隆到工作中的开发机器来完成此操作。在这两个位置都可以编译而没有错误。

问题出现在我尝试在新位置调试时。在领域上下文的第一个“Load()”方法处,我遇到了以下错误:

The provided URI scheme 'file' is invalid expected 'http'

我理解调试器正在尝试使用基于文件的URI而不是HTTP URI来运行。但是,为什么?我该如何修复它?

在SO上搜索返回了一些类似的关于无效URI方案的错误,但没有一个能够帮助我解决这个特定问题。

谢谢, Jim

4个回答

29

确保您的启动项目是Web项目,而不是Silverlight项目本身。


4
如果在浏览器外进行调试,则将Silverlight项目设置为启动项,但在Silverlight项目的设置中,在“调试”下,将服务器项目设置为“Out-of-browser应用程序”,而不是Silverlight项目。这个操作可能不是很直观,但必须这样做才能消除“file://”问题。 - JoeCool
1
谢谢,这很有帮助。我只想补充一点,以防有人遇到同样的问题。我的错误是在我删除了suo文件后开始出现的,我猜测启动项目的引用在这个文件中。 - ramnz

1

如果您正在运行 OOB(Out Of Browser)并且想要进行调试,则需要将 Silverlight 客户端项目设置为启动项目,同时在服务器项目中,右键单击“*TestPage.html”并选择“设置为起始页”。然后,如果出现错误...

The provided URI scheme 'file' is invalid expected 'http'

然后打开Silverlight客户端的属性页面,取消勾选“允许在浏览器之外运行应用程序”,点击保存,然后再将设置勾选上,就可以正常工作了。 参见... http://blogs.msdn.com/b/deepm/archive/2010/07/16/debugging-an-oob-silverlight-business-application.aspx


就像我在对ZunTzu的评论中发布的那样,您还需要转到Silverlight项目的设置,并在“调试”下将服务器项目设置为离线应用程序,而不是Silverlight项目。 - JoeCool

1
可能发生的情况是,Silverlight客户端应用程序尝试使用“file://”协议与服务器端RIA Services Web服务进行通信。
您是否直接从服务器的文件系统中启动了Silverlight XAP文件,而不是通过“http://” URL? Silverlight正在尝试使用与获取其XAP文件相同的协议。
出于同样的原因,在从Visual Studio启动应用程序时,请将Web项目设置为启动项目,而不是Silverlight(客户端)项目。

0

我相信你应该引用服务器端文件,而不是本地文件。此外,大多数Silverlight应用程序不允许访问本地文件。


该程序未编写以访问本地文件。当Silverlight模块调用RIA服务方法时,会出现错误。这在原始开发环境中是有效的,但在移动到另一个相同的环境后失败了(据我所知,但显然并非完全相同)。 - Jim Reineri

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