Этот код работает в консольном приложении, но не MVC:StreamReader терпит неудачу в MVC
XmlSerializer s = new XmlSerializer(typeof(IDChckRspn));
StreamReader r = new StreamReader(@"d:\temp\response.xml");
object obj = s.Deserialize(r);
IDChckRspn _response = (IDChckRspn)obj;
В отлаживать в консольном приложении я могу углубиться в S, R, OBJ и _response. В приложении MVC, если я попытаюсь просверлить их, они не откроются. Иногда он будет работать в MVC, но большую часть времени его нет. Я подозреваю, что это связано с загрузкой файла, потому что если я помещаю точку останова на объект obj, я до сих пор не могу сверлить в r в приложении MVC, но могу в консольном приложении. У меня есть аналогичные проблемы с использованием FileStream в приложении MVC.
Update 1 После Sleiman-х и Daniels предложение я сейчас, используя этот код:
IDChckRspn response;
using (var r = new StreamReader(HttpContext.Server.MapPath("~/App_Data/response.xml")))
{
response = new XmlSerializer(typeof(IDChckRspn)).Deserialize(r) as IDChckRspn; //'as' rather than a cast won't throw an exception
}
, но по-прежнему получать тот же результат, не исключение и не может просверлить в окно Locals, чтобы посмотреть на ответ. Точка останова находится на следующей строке после этого кода.
Update 2 Я объявил переменную в действии, которое содержит этот код var test = "";
. При этом у меня есть проблема (точка останова при возврате View;). Если я прокомментирую декларацию, проблема будет устранена. Если я перемещу точку останова в строку response = и пройду через нее, она работает даже с объявлением переменной там.
public ActionResult VerifyID()
{
IDChckRspn response;
using (var r = new StreamReader(HttpContext.Server.MapPath("~/App_Data/response.xml")))
{
response = new XmlSerializer(typeof(IDChckRspn)).Deserialize(r) as IDChckRspn; //'as' rather than a cast won't throw an exception
}
var test = "";
return View();
}
Почему объявление переменной в действии вызывает отказ .Deserializer?
Любые ошибки? Выбрасывает ли какие-либо исключения? Будучи MVC, я подозреваю, что у этого файла нет разрешений для INETUSR. – Gobo
Подключитесь ли вы к процессу w3wp или запуску сайта из отладчика? –
Вы должны разместить дополнительную информацию, такую как Исключение! – Fals