C# 图像不显示在网页中

C# 图像不显示在网页中,c#,asp.net,.net,iis,C#,Asp.net,.net,Iis,我正在使用VS2010开发一个web应用程序。我将上载的图像存储在服务器的物理路径中,并在IIS 7.5中创建了虚拟路径(下面的屏幕截图)。在授权中,会显示一条警告。对于使用belo代码,我尝试从服务器检索图像,但未显示图像。问题出在哪里,在虚拟路径中还是在代码中提到的路径中 private void CallImage() { SqlConnection SqlCon = new SqlConnection(GetConnectionString()); S

我正在使用VS2010开发一个web应用程序。我将上载的图像存储在服务器的物理路径中,并在IIS 7.5中创建了虚拟路径(下面的屏幕截图)。在授权中,会显示一条警告。对于使用belo代码,我尝试从服务器检索图像,但未显示图像。问题出在哪里,在虚拟路径中还是在代码中提到的路径中

    private void CallImage()
    {
     SqlConnection SqlCon = new SqlConnection(GetConnectionString());
     SqlCon.Open();
     string query = "SELECT Cmp_DocPath FROM Company_Info WHERE 
                          Vendor_ID= '" + ddlVendorID.SelectedValue + "'";
     SqlCommand SqlCmd = new SqlCommand(query, SqlCon);
     SqlDataAdapter da = new SqlDataAdapter(SqlCmd);
     DataTable dt = new DataTable();
     da.Fill(dt);
     string ImageName = Convert.ToString(dt.Rows[0][0].ToString());
     Image1.ImageUrl = this.ResolveUrl("D:/Upload/Commerical Certificates/"+ImageName);
    //  Image1.ImageUrl = this.ResolveUrl("D:\\Upload\\Commerical Certificates\\"+ImageName);
    //  Image1.ImageUrl = this.ResolveUrl("~\\Upload\\Commerical Certificates\\"+ImageName);
     SqlCon.Close();
    }


您使用的用户名在服务器上可能没有读/写权限。转到相应用户的用户设置并启用读写权限。还要检查图像的路径是否正确。希望有帮助。

你不能将一个物理位置引用到一个图像上,而期望它在网站上工作。将到映像的路径存储为来自站点根目录的虚拟路径。例如:

如果您的站点根目录位于:

d:\inetpub\mysite\
您的图片位于:

d:\inetpub\mysite\uploads\images\
那么数据库中的虚拟路径需要是:

~\uploads\images\image1.jpg
~\uploads\images\image2.jpg
然后可以将其设置为ImageUrl属性,不需要解析(图像控件会自动进行解析)


我的猜测是,出现此问题的原因是,您试图引用不在网站中的图像,即使您通过访问网络服务(IIS_IUSRS)在开发环境中工作,但一旦将此应用程序移动到生产环境中,您也会遇到问题。更不用说在安全性和模块性方面,这是一种非常糟糕的方法。

那么渲染图像源等于什么呢?