#c# #streamreader #wcf-rest
#c# #streamreader #wcf-rest
Вопрос:
Я получаю
ошибка 400 Bad Request
… всякий раз, когда я пытаюсь открыть файл, но я могу записать в него просто отлично.
Я пробовал использовать новый StreamReader, File.OpenRead (путь) и т. Д., И я всегда получаю одну и ту же ошибку. Комментирование кода, связанного с streamreader, позволяет мне записать имя пользователя в файл.
public bool isValidUsername(string username)
{
string path = System.Web.HttpContext.Current.Server.MapPath("users.txt");
StreamReader sr = new StreamReader(path);
string nextLine = sr.ReadLine();
while (nextLine != null)
{
if (string.Compare(nextLine, username) == 0)
{
return false;
}
nextLine = sr.ReadLine();
}
File.AppendAllText(path, username "n");
return true;
}
Я пытаюсь прочитать файл, содержащий имена пользователей, чтобы убедиться, что указанное имя пользователя еще не было занято, и если это не так, я хочу добавить это имя пользователя в текстовый файл. Я знаю, что путь правильный, потому что я могу записать в него, используя строку AppendAllText .
Комментарии:
1. 400 — плохой запрос, это может быть связано с тем, как вы вызываете метод. Попробуйте запустить его в режиме отладки с точкой останова и выполнить пошаговое выполнение? Посмотрите, достигает ли он правильной конечной точки и вызывается ли метод чтения файла. Кроме того, если бы что-то сломалось в вашем коде, вы бы увидели
500 Internal Server Error
или подобное2. Смотрите Этот пост для возможного устранения неполадок ошибки 400
3. Должны ли вы использовать a
using() { }
с вашимStreamReader
(этим или вызовомClose()
). Это может объяснить последующие сбои чтения4. И не бойтесь помещать этот streamreader в блок using .