惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
N
Netflix TechBlog - Medium
V
Visual Studio Blog
博客园 - Franky
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
量子位
大猫的无限游戏
大猫的无限游戏
人人都是产品经理
人人都是产品经理
V
V2EX
The Cloudflare Blog
月光博客
月光博客
Last Week in AI
Last Week in AI
雷峰网
雷峰网
WordPress大学
WordPress大学
博客园 - 【当耐特】
博客园 - 聂微东
IT之家
IT之家
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

博客园 - MobileGeek

Swift全栈开发 App Submission Issues 番茄钟App(Pomodoro Tracker) WatchKit App Submission Issues Watch​Kit Learning Resources Scrum Planning Card How to get cocoapods work on Yosemite 如何在DigitalOcean安装Ghost Swift学习资源 Xcode 6 模拟器路径 Android AutoCompleteTextView,Spinner和ListView的使用 Android Layout 布局 Android消息提示框和对话框 Silverlight4中使用WebClient类下载压缩成zip格式的图片 “Unable to start debugging. The Silverlight Developer Runtime is not installed. Please install a matching version.” 解决办法 Android Project Structure(项目结构) Hello Android Introducing Android 使用Git和Repo获取Android源码
Silverlight Exception: “The URI prefix is not recognized.”
MobileGeek · 2010-09-12 · via 博客园 - MobileGeek

在写前一篇Silverlight4中使用WebClient类下载压缩成zip格式的图片的过程中,遇到了下面这个异常:

{System.Net.WebException: WebClient 请求期间发生异常。 ---> System.NotSupportedException: 无法识别 URI 前缀。
   位于 System.Net.WebRequest.Create(Uri requestUri)
   位于 System.Net.WebClient.GetWebRequest(Uri address)
   位于 System.Net.WebClient.OpenReadAsync(Uri address, Object userToken)
   --- 内部异常堆栈跟踪的结尾 ---}
    [System.Net.WebException]: {System.Net.WebException: WebClient 请求期间发生异常。 ---> System.NotSupportedException: 无法识别 URI 前缀。
   位于 System.Net.WebRequest.Create(Uri requestUri)
   位于 System.Net.WebClient.GetWebRequest(Uri address)
   位于 System.Net.WebClient.OpenReadAsync(Uri address, Object userToken)
   --- 内部异常堆栈跟踪的结尾 ---}
    Data: {System.Collections.ListDictionaryInternal}
    InnerException: {System.NotSupportedException: 无法识别 URI 前缀。
   位于 System.Net.WebRequest.Create(Uri requestUri)
   位于 System.Net.WebClient.GetWebRequest(Uri address)
   位于 System.Net.WebClient.OpenReadAsync(Uri address, Object userToken)}
    Message: "WebClient 请求期间发生异常。"
    StackTrace: null

调试后发现WebClient对象的BaseAddress值如下:

wc.BaseAddress
file:///C:/…./SilverlightApplication1/SilverlightApplication1/Bin/Debug/SilverlightApplication1.xap

怎么会是本地的地址呢?应该是基于HTTP的URI才对啊。

最终发现我在运行Silverlight程序是通过直接在Silverlight Application项目里创建的TestPage来测试的,而没有创建Silverlight宿主网站来测试。虽然在有些情况下直接在Silverlight Application项目创建一个TestPage来测试也是可行的,这样只需build一个项目就可以看到运行结果,但某些情况下还是会出问题的,所以还是推荐大家在创建Silverlight Application项目的同时就创建一个宿主的网站。

image

创建宿主网站后再运行发现wc.BaseAddress值变为"http://localhost:7908/ClientBin/MySilverlightApplication.xap”, 一切正常。