none
別のプロセスで使用されているため、プロセスはファイル○○○にアクセスできない! RRS feed

  • 質問

  • Visual Studio 2005でWebアプリを開発しております。

    画像ファイルをFileUploadコントロールを利用してサーバーにアップロードして、その画像ファイルを 一旦'c:\inetpub\wwwroot\ps\upload\hoge.jpg' に格納してからImage.FromFileで画像ファイルを読み込んで画像サイズを変更し、変更した画像データをSQLデータベースに格納する処理をしておりますが、最初の1回はできるのですが、2回目以降、下記のエラーメッセージが表示され処理不能となります。

    どなたか回避策をご教授ください。

    -------エラーメッセージ---------------

    別のプロセスで使用されているため、プロセスはファイル 'c:\inetpub\wwwroot\ps\upload\hoge.jpg' にアクセスできません。
    説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。

    例外の詳細: System.IO.IOException: 別のプロセスで使用されているため、プロセスはファイル 'c:\inetpub\wwwroot\ps\upload\hoge.jpg' にアクセスできません。

    ソース エラー:

    行 107:
    行 108:            '=============
    行 109:            FileUpload1.PostedFile.SaveAs(Server.MapPath("~/upload/" & Session("photo")))
    行 110:            img1 = Image.FromFile(Server.MapPath("~/upload/" & Session("photo")))

    ソース ファイル: c:\inetpub\wwwroot\ps\article\article5.aspx.vb    行: 109

    -------以下はコードです---------------

    Session("pflg") = 0 '写真変更フラグ

            Session("photo") = "hoge.jpg"

            '-------

            If FileUpload1.HasFile Then
                Session("pflg") = 1 '写真変更フラグ
                Session("photo1") = FileUpload1.FileName

                '=============
                FileUpload1.PostedFile.SaveAs(Server.MapPath("~/upload/" & Session("photo")))
                 img1 = Image.FromFile(Server.MapPath("~/upload/" & Session("photo")))

                Dim h As Integer
                h = 110 * img1.Height / img1.Width '幅110PX
                Dim bmp1 As Bitmap = New Bitmap(img1, 110, h)

                bmp1.Save(Server.MapPath("~/upload1/" & Session("photo")), ImageFormat.Jpeg)
                 Dim filename As String = Server.MapPath("~/upload1/" & Session("photo"))

                Dim fs1 As New FileStream(filename, FileMode.Open, FileAccess.Read)
                Dim bs(fs1.Length - 1) As Byte
                fs1.Read(bs, 0, bs.Length)

                fs1.Close()
                 '=============

                Dim cns As String = Application("sqlconnectstring")
                Dim conn As New SqlConnection(cns)

                Dim sqlstr1 As String = "UPDATE article1 SET PC写真1=@PC写真1,携帯写真1=@携帯写真1 WHERE (art1id='" & Session("art1id") & "')"
                Dim pa1 As New SqlParameter("@PC写真1", FileUpload1.FileBytes)
                Dim pa2 As New SqlParameter("@携帯写真1", bs)

                Dim cmd1 As New SqlCommand(sqlstr1, conn)
                cmd1.Parameters.Add(pa1)
                cmd1.Parameters.Add(pa2)

                conn.Open()
                Try
                    cmd1.ExecuteNonQuery()
                Catch ex As Exception
                    Label1.Text = ex.ToString
                    conn.Close()
                    Exit Sub
                End Try
                conn.Close()

                Image1.Visible = True
                Image1.Width = 200
                Image1.ImageUrl = "article6.aspx?ptype=1"

                Image3.Visible = True
                'Image3.Width = 110
                Image3.ImageUrl = "article6.aspx?ptype=3"

            End If
            '-------

     


     

    2006年8月2日 5:39

すべての返信