Я разобрался в проблеме. Вот мой код -

аюсь загрузить ZIP-файл размером около 600 МБ в таблицу SQL 2008 FILESTREAM и получаю исключение OutOfMemoryException. Я использую класс SqlFileStream для загрузки файла (как описано в этом руководстве -http://www.aghausman.net/dotnet/saving-and-retrieving-file-using-filestream-sql-server-2008.html). У меня есть 32-разрядная машина Vista с 4 ГБ оперативной памяти, если это имеет значение, и я использую VS 2010, Entity Framework 4.

Вот мой фрагмент кода -

public static void AddItem(RepositoryFile repository)
    {
        var contents = repository.Data; // I get the exception at this line.
        repository.Data = System.Text.Encoding.ASCII.GetBytes("0x00");

        using (var scope = new TransactionScope())
        {
            using (var db = new MyEntities())
            {
                db.RepositoryTable.AddObject(repository);
                db.SaveChanges();
            }

            using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
            using (var cmd = new SqlCommand("SELECT Data.PathName(), GET_FILESTREAM_TRANSACTION_CONTEXT() FROM dbo.RepositoryTable", con))
            {
                cmd.Connection.Open();
                using (var reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var path = reader.GetString(0);
                        var transactionContext = reader.GetSqlBytes(1).Buffer;
                        var fileStream = new SqlFileStream(path, transactionContext, FileAccess.Write);

                        fileStream.Write(contents, 0, contents.Length);
                        fileStream.Close();
                    }
                }
            }

            scope.Complete();
        }
    }

Как загрузить файл без ошибок?

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос