无法将类型为“System.Net.FileWebRequest”的对象强制转换为“System.Net.HttpWebRequest”。

时间:2011-01-17 23:51:32

标签: c# httpwebrequest

嗨大家我在从服务器试用时遇到上述错误(在服务器上部署了相同的代码)。 但是当我尝试使用本地机器中的相同代码时,它并没有给出错误。

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);

任何想法的人可能会出错?

2 个答案:

答案 0 :(得分:7)

传入的URI不是http URI - 它只是一个路径或file URI。确保URI以http:开头。如果它是相对URI,则需要将其设为绝对值。

答案 1 :(得分:2)

WebRequestWebRequest.Create()工厂方法返回的类型,是抽象类型。

根据URL字符串中识别的协议,它会返回一个有效的子类,如FileWebRequestFtpWebRequest

您的代码中的问题是您正在尝试创建本地文件(file://)协议的请求,因此工厂返回FileWebRequest,但您强制代码认为它是远程的HTTP URL。只需错误

这解释了它只适用于远程文件而非本地文件