2012-11-11 10 views
0

웹 응용 프로그램을 개발하는 데 VS 2010을 사용하고 있습니다. 업로드 된 이미지를 서버의 실제 경로에 저장하고 있으며 IIS 7.5 (아래 스크린 샷)에 가상 경로를 만들었습니다. 권한 부여에서 하나의 경고가 표시됩니다. 아래 코드를 사용하여 서버에서 이미지를 검색하려고 시도하지만 이미지가 표시되지 않습니다. 문제는 어디에서 가상 경로 또는 코드에서 언급하는 경로에?웹 페이지에 이미지가 표시되지 않습니다.

IIS Error

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(); 
    } 
+1

그래서 렌더링 된 이미지 소스는 무엇입니까? – MikeSmithDev

답변

0

실제 위치를 이미지로 참조하고 웹 사이트에서 작동 할 것으로 기대할 수 없습니다. 이미지 경로를 사이트 루트에서 가상 경로로 저장하십시오. 사이트의 루트에있는 경우

는 :

d:\inetpub\mysite\ 

그리고 당신의 이미지에 있습니다 : 예를 들어

~\uploads\images\image1.jpg 
~\uploads\images\image2.jpg 
:

d:\inetpub\mysite\uploads\images\ 

그런 다음 가상 경로는 그가 데이터베이스가 있어야합니다 int로

그런 다음 ImageUrl 속성과 no로 설정할 수 있습니다. 해결할 필요가 없습니다. Image 컨트롤이 자동으로 수행합니다).

내 생각 엔 웹 사이트에없는 이미지를 참조하려고하기 때문에이 문제가 발생하는 이유는 네트워크 환경에 대한 액세스 권한을 부여하여 개발자 환경에서 작업하는 경우에도, 두 번째로이 애플리케이션을 프로덕션 환경으로 옮기는 IIS_IUSRS는 문제가 발생할 것입니다. 보안과 모듈성 측면에서 그 일을하는 것은 매우 빈약 한 방법입니다.

0

사용한 사용자 이름이 서버에 읽기/쓰기 권한이되지 않을 수 있습니다. 해당 사용자의 사용자 설정으로 이동하여 읽기 및 쓰기 권한을 활성화하십시오. 또한 이미지의 올바른 경로를 제공하는지 확인하십시오. 희망이 도움이됩니다.

관련 문제