C#使用Web客户端下载数据

C#使用Web客户端下载数据,c#,asp.net,web-services,sitecore,C#,Asp.net,Web Services,Sitecore,我下载文件时遇到问题。我正在本地IIS上运行此网站。BaseUrl正确地包含本地IIS站点的地址。moduleImgPath是一个Sitecore媒体项:“/Sitecore/shell/~/media/Racking/module image.png”。BaseUrl具有结构“http://local-$company.com“ 下载使用的代码如下所示。Image.FromStream()上的方法错误,带有System.ArguementException-“参数无效。” 我的问题主要围绕着—

我下载文件时遇到问题。我正在本地IIS上运行此网站。BaseUrl正确地包含本地IIS站点的地址。moduleImgPath是一个Sitecore媒体项:“/Sitecore/shell/~/media/Racking/module image.png”。BaseUrl具有结构
“http://local-$company.com“

下载使用的代码如下所示。Image.FromStream()上的方法错误,带有System.ArguementException-“参数无效。”


我的问题主要围绕着——你能用这种方式使用WebClient,从本地来源下载数据吗?或者我需要将此代码部署到我的测试环境中进行测试?如果可以,我需要担心端口吗

看起来您的图像数据不是jpg(我认为这通常是图像所期望的)

你可以看到为什么这个错误会发生

你可以在上面看到图片的文档


我冒昧猜测,您可能正在尝试使用非jpg,或者您的jpg格式可能不正常。

WebClient.DownloadData返回一个字节[]。我将首先将其保存到本地字节[],并尝试将其用作MemoryStream的参数。我知道这听起来很奇怪,但只要试一下,看看会发生什么……它还允许您查看字节[]是否已填充错误被抛出,因此似乎不会发生这种情况。字节数组确实有数据,因此看起来更复杂,以至于数据格式不正确。
        Stream stream = new MemoryStream(new WebClient().DownloadData(RackingConfigHelper.BaseUrl + moduleImgPath));

        Image objImage = Image.FromStream(stream);