Как мне открыть файл для чтения в службе C # restful?

#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 .