C# System.Drawing.Bitmap参数无效

C# System.Drawing.Bitmap参数无效,c#,asp.net,C#,Asp.net,我有一个错误: 参数无效 在这一行: System.Drawing.Bitmap("~\\father\\chocolate.png"); “~\\father\\chocolate.png”本身不太可能是一个有效的文件名-我怀疑您想先将它从一个ASP.NET相对文件名映射到一个真正的本地文件名 例如: var bitmap = new Bitmap(Server.MapPath("~/father/chocolate.png")); (我个人建议在这里使用前斜杠而不是反斜杠-它们在Wind

我有一个错误:

参数无效

在这一行:

System.Drawing.Bitmap("~\\father\\chocolate.png");

“~\\father\\chocolate.png”
本身不太可能是一个有效的文件名-我怀疑您想先将它从一个ASP.NET相对文件名映射到一个真正的本地文件名

例如:

var bitmap = new Bitmap(Server.MapPath("~/father/chocolate.png"));

(我个人建议在这里使用前斜杠而不是反斜杠-它们在Windows下同样有效;它们在Linux下仍然有效;它们不需要转义。)

很可能
“~\\father\\chocolate.png”
本身就是一个有效的文件名-我怀疑您想先将它从一个ASP.NET相对文件名映射到一个真正的本地文件名

例如:

var bitmap = new Bitmap(Server.MapPath("~/father/chocolate.png"));

(我个人建议在这里使用前斜杠而不是反斜杠——它们在Windows下同样有效;它们在Linux下仍然有效;它们不需要转义。)

这个建议可能有点晚了,但为了其他人看这篇文章:

如果您正在代码中的某个地方使用/打开图像,这可能是一个很好的理由

确保完成后关闭图像对象的任何内存流或实例

我刚刚遇到了以下形式的错误:HttpException(0x80004005):参数无效

调试后,我意识到处理图像与此错误有关

令人惊奇的是,虽然图像已经存储在我们的数据库中,并且没有被使用,但它似乎仍然保留着它

如果已将png文件实例化为图像对象,请确保关闭所有MemoryStream/Stream对象并处置图像(将其设置为nothing),然后执行垃圾收集以将其从内存中释放


希望这有帮助

这个建议可能有点晚了,但为了其他人看这篇文章:

如果您正在代码中的某个地方使用/打开图像,这可能是一个很好的理由

确保完成后关闭图像对象的任何内存流或实例

我刚刚遇到了以下形式的错误:HttpException(0x80004005):参数无效

调试后,我意识到处理图像与此错误有关

令人惊奇的是,虽然图像已经存储在我们的数据库中,并且没有被使用,但它似乎仍然保留着它

如果已将png文件实例化为图像对象,请确保关闭所有MemoryStream/Stream对象并处置图像(将其设置为nothing),然后执行垃圾收集以将其从内存中释放


希望这有帮助

请显示完整代码。这不是有效路径。您需要使用ASP.Net API来解析
~
。请显示完整的代码。这不是有效的路径。您需要使用ASP.NETAPI来解析
~