C# 将图像加载到asp.net应用程序

C# 将图像加载到asp.net应用程序,c#,asp.net,image,iis,directory,C#,Asp.net,Image,Iis,Directory,我遇到了一个我无法处理的障碍,尽管我已经经历了许多与之相关的话题。我是ASP.NET的初学者,我想将图像加载到.aspx页面中,但不知何故它从未呈现过。我使用的是VS 2015,在项目的属性中,在选项卡Web上,选择了IIS Express。我知道浏览器无法从本地磁盘读取数据,但我也无法使用虚拟目录进行读取。更重要的是,我也无法创建一个新的(我在管理员帐户下运行VS) 根据本主题中的其他帖子,在applicationhost.config中,我尝试将与虚拟路径相关的物理路径修改为:

我遇到了一个我无法处理的障碍,尽管我已经经历了许多与之相关的话题。我是ASP.NET的初学者,我想将图像加载到
.aspx
页面中,但不知何故它从未呈现过。我使用的是VS 2015,在项目的属性中,在选项卡Web上,选择了
IIS Express
。我知道浏览器无法从本地磁盘读取数据,但我也无法使用虚拟目录进行读取。更重要的是,我也无法创建一个新的(我在管理员帐户下运行VS)

根据本主题中的其他帖子,在
applicationhost.config
中,我尝试将与虚拟路径相关的物理路径修改为:

         <sites>
            <site name="WebSite1" id="1" serverAutoStart="true">
                <application path="/">
                    <virtualDirectory path="/" physicalPath="C:\Temp\images" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation=":8080:localhost" />
                </bindings>
            </site>
            <siteDefaults>
                <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
                <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
            </siteDefaults>
            <applicationDefaults applicationPool="Clr4IntegratedAppPool" />
            <virtualDirectoryDefaults allowSubDirConfig="true" />
        </sites>
然而,它不起作用。我的意思是图像没有被渲染。有人能帮我实现吗?如何指向与物理路径对应的虚拟目录,以便加载文件?该文件确实存在,因为我在运行时使用GDI+创建它,它显示在
C:\Temp\images
中。我还不太熟悉这个IIS,所以如果有任何帮助,我将不胜感激

如果我忘记写任何重要的事情,谢谢你,也很抱歉!:)

编辑:
当我将
url
变量更改为
@“C:\Users\pablo\Documents\visualstudio 2015\Projects\GDI\u Asp\GDI\u Asp\test.gif”
时,这是有效的,它是ofc my project文件夹。因此,我似乎没有更改虚拟目录的物理路径,但如果手动更改不起作用,我不知道该怎么做。

这是为了让您可以动态生成图像以在页面中呈现,而不是作为静态资产?为什么不使用项目的根目录?@Kev不是真的,这不是问题。我的意思是,在这种情况下,是的,我正在动态生成它,但我的问题是,如果我需要从本地磁盘而不是应用程序文件夹的其他目录加载它,我应该怎么做。@SankarRaj,因为我希望能够选择加载它的位置,只是为了了解:)对有问题的临时文件夹授予应用程序池标识的读取权限。这是为了让您可以动态生成要在页面中呈现的图像,而不是静态资产?为什么不使用项目的根目录?@Kev不是真的,这不是问题。我的意思是,在这种情况下,是的,我正在动态生成它,但我的重点是,如果我需要从本地磁盘而不是应用程序文件夹中的其他目录加载它,我应该怎么做。@SankarRaj,因为我希望能够从加载它的位置进行选择,只是为了了解:)在有问题的临时文件夹上授予应用程序池标识的读取权限。
try
            {
                //bitmap i Graphics
                Bitmap bmp = new Bitmap(200, 200);
                {...}
                string url = @"C:\Temp\images\test.gif";
                string url1 = "~/test.gif";
                bmp.Save(url,ImageFormat.Png);
                bmp.Dispose();
                g.Dispose();
                imgTheImage.Visible = true;
                imgTheImage.ImageUrl = url1;
                lblErros.Text = "";
            }