Решение:
Оказывается, я не проверял путь, который он искал, довольно глупо с моей стороны. После того как я разобрался с этой проблемой и исправил неправильный путь, чтение работало нормально. Все еще сбит с толку проблемой MSSQL, поскольку статьи в среднем занимают менее 10 000 байт.
Пояснение:
Я не уверен, что у некоторых из вас сложилось впечатление, что файл, который я пытаюсь прочитать, находится на моей локальной машине. Он находится в Интернете на том же сервере, что и скрипт, который к нему обращается. Просто в другом каталоге.
Я написал онлайн-справочное приложение, которое включает статьи. Одна проблема, с которой я столкнулся
некоторые статьи слишком длинные и обрезаются, когда я помещаю их в свою базу данных MSSQL. Я попытался использовать TEXT
и VARCHAR(MAX)
в качестве типа данных, но он все равно будет обрезан.
Поэтому я решил поместить слишком длинные статьи в текстовый файл, и мое приложение прочитало текстовый файл оттуда. Я получил этот код, работающий в моей среде разработки, но он не работает вживую:
Dim output As String = String.Empty
Try
Dim theArticle As gsClassroom = classArticles(iterate)
If theArticle.Body.StartsWith("/docs/") Then
Dim oReader As IO.StreamReader = Nothing
Try
oReader = New IO.StreamReader(Server.MapPath(String.Format("/dev{0}", theArticle.Body)))
Catch ex As Exception
output = String.Format("{0}<br /><br />{1}", ex.Message, "internal")
Finally
oReader.Close()
oReader.Dispose()
oReader = Nothing
End Try
Else
output = theArticle.Body
End If
Catch ex As Exception
output = String.Format("{0}<br /><br />{1}", ex.Message, "external")
End Try
Response.Output.WriteLine(output)
Сначала я подумал, что это потому, что я не изменил префикс пути /dev
на /hlpdsk
. Но даже после того, как я изменил его, он взорвался. Что я делаю не так?