Я создал простой сайт asp.net. Есть только 1 страница с контролем загрузки файлов и кнопкой загрузки. Вот как это должно работать: когда пользователь просматривает файл и загружает его, он сохраняет фактический файл в новой записи в моей базе данных AZURE.Загрузка большого файла в Azure db дает ошибку (сайт ASP.NET)
С небольшими файлами он отлично работает. При больших файлов, таких как 45MB, он дает следующую ошибку ....
System.Data.SqlClient.SqlException (0x80131904): Timeout expired. The timeout period
elapsed prior to completion of the operation or the server is not responding.
---> System.ComponentModel.Win32Exception (0x80004005):
В моей web.config я уже добавил следующие отрывки ....
<httpRuntime maxRequestLength="102400000"
requestValidationMode="2.0" executionTimeout="12000" />
</system.web>
И ....
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483648" />
</requestFiltering>
</security>
Любая идея, что может быть? Что мне не хватает? Существуют ли какие-либо дополнительные конфигурации, которые мне нужны, так как это Azure db?
код загрузки образца ....
Dim filename As String = Path.GetFileName(FileUpload1.PostedFile.FileName)
Dim contentType As String = FileUpload1.PostedFile.ContentType
Using fs As Stream = FileUpload1.PostedFile.InputStream
Using br As New BinaryReader(fs)
Dim bytes As Byte() = br.ReadBytes(fs.Length)
Dim constr As String = ConfigurationManager.ConnectionStrings("MyDb").ConnectionString
Using con As New SqlConnection(constr)
Dim query As String = "insert into MyFileTable values (@ActualDocument, @Filename)"
Using cmd As New SqlCommand(query)
cmd.Connection = con
cmd.Parameters.Add("@ActualDocument", SqlDbType.Binary).Value = bytes
cmd.Parameters.Add("@Filename", SqlDbType.VarChar).Value = filename
con.Open()
Dim i As Integer = cmd.ExecuteNonQuery()
Response.Write(i & " records<br/>")
con.Close()
End Using
End Using
End Using
End Using
Есть ли хранить такие большие файлы в базе данных SQL причина или требование? – CSharpRocks
Я согласен с @CSharpRocks. Если вам нужно хранить большие файлы, попробуйте использовать OneDrive API для отправки файлов в OneDrive вместо SQL SERVER. Возможно, вам понадобится учетная запись Office365. –
Можете ли вы опубликовать сегмент кода, который вы вызываете для загрузки файла. –