я получаю следующее сообщение об ошибке при попытке открыть диалоговое окно выбора файлов в .NET:ThreadStateException Ошибка на OpenFileDialog
Текущий поток должен быть установлен в режим одного потока квартиры (STA), прежде чем OLE вызовов могут быть сделаны. Убедитесь, что ваша основная функция имеет STAThreadAttribute, отмеченный на нем. Это исключение возникает только в том случае, если к процессу прикреплен отладчик.
Я попытался добавить STAThread() _ в начало модуля, но это не повлияло. Большинство решений этой ошибки вызывают добавление STAThread() _ к основному методу, но я не уверен, что основной метод находится в приложении vb.NET. Может кто-нибудь помочь мне здесь?
Код функции, которая выбрасывает ошибку, приведен ниже. Благодарю.
Protected Sub cmdUploadNew_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdUploadNew.Click
Dim FileName As String
Dim FileDialog As New OpenFileDialog
FileDialog.InitialDirectory = "C:\"
FileDialog.Filter = "Excel files (*.xlsx)|*.xlsx"
FileDialog.RestoreDirectory = True
If FileDialog.ShowDialog() = DialogResult.OK Then
FileName = FileDialog.FileName
End If
End Sub
Почему этот помеченный ASP.NET? Где вы ожидаете появления этого диалогового окна? –
Я ожидаю, что диалог появится в виде диалогового окна файла Windows, предлагающего пользователю выбрать файл. – StephenT
Но 'cmdUploadNew_Click' является серверным кодом. Итак, он будет запущен на сервере ... http://stackoverflow.com/questions/4950948/openfiledialog-in-asp-net –