silverlight错误 - 相对uri不支持该操作

时间:2009-04-01 16:53:40

标签: asp.net silverlight web-services

我刚刚开始开发silverlight应用程序。我在我的asp.net项目中创建了一个webserivce。现在,当我尝试通过我的silverlight项目连接到它时,我收到以下错误:

“相对uri不支持opre”

我使用以下网址 - >

http://192.168.1.2/MyWebsite/SubVersionedHistory.svc

我可以找到这个类及其方法,但是当我添加它时会收到这个可怕的错误。

感谢您的帮助和建议,

Vondiplo

4 个答案:

答案 0 :(得分:2)

我不认为你会遇到这个问题。今天我用VS2008SP1 + SL2尝试为ADO.NET数据服务创建服务参考。我第一次遇到错误。

其他人也有类似的经历来达到这个错误:

http://silverlight.net/forums/t/87535.aspx http://silverlight.net/forums/t/56629.aspx

目前还不完全清楚,如果问题是IDE“添加服务引用”对话框或服务中特定的某些内容导致此错误。但是,在我的情况下,尽管出现错误消息,我的代码仍然有效。我只是在我的DataService代理客户端的构造函数中将URL传递给我的服务,如下所示:

var context = new DataServiceContext(new Uri("NorthwindDataService.svc", UriKind.Relative));

摘要点:仅仅因为您在IDE中遇到此错误,您的服务引用可能仍然有效。试一试,如果您在运行时看到错误,请告诉我们。

希望有所帮助。

[更新] 根据我发现并测试过的其他一些建议,您也可以尝试:

  1. 删除服务参考
  2. 删除ServiceReferences.ClientConfig文件
  3. 保存您的解决方案
  4. 然后在VS中关闭并重新打开它。
  5. 关闭和重新打开项目的简单操作已经证明可以解决添加服务向导的几个问题。重新运行Add Service Ref向导,你可能会有更好的运气。我亲自在今天的项目上测试了这个解决方案,并确认它有效。希望为寻找解决方案增添额外帮助。

答案 1 :(得分:1)

您应该更具体地了解您的问题。例如,在添加引用或实际尝试使用服务时是否遇到此问题?

听起来你需要使用完整路径,包括“http://”,但这只是基于你提供的错误信息在黑暗中拍摄的。

[edit]如果您使用的是内置ASP.NET服务器而不是IIS,请确保设置特定端口号并在路径中使用它。例如,我使用http://localhost:4940/MyService.svc来测试[/ edit]

答案 2 :(得分:1)

也许这个回复可以帮到你

你不能使用AbsolutePath,你需要使用AbsoluteURL。以这种方式构建您的URL:   Uri url = new Uri(App.Current.Host.Source,“.. / settings.xml”); client.DownloadStringAsync(url);

http://silverlight.net/forums/p/28912/95541.aspx

HTH   布劳略

答案 3 :(得分:0)

检查ServiceReferences.ClientConfig

如果有多个端点,您将获得此异常。可能导致此问题的一件事是使用casini引用服务,稍后切换到IIS express并重新引用该服务。