Я пытаюсь заставить консольное приложение отправлять файл XML в веб-приложение, разработанное в ASP.NET MVC 3, и получать в ответ другой XML.
В консольном приложении возвращается следующая ошибка:
Удаленный сервер вернул ошибку: (500) Внутренняя ошибка сервера.
Когда я запускаю Fiddler2, я вижу эту ошибку:
Ссылка на объект не указывает на экземпляр объекта.
Код в консольном приложении:
static void Main(string[] args)
{
var wc = new WebClient();
byte[] response = wc.UploadFile("http://mysite.com/Tests/Test", "POST", "teste.xml");
string s = System.Text.Encoding.ASCII.GetString(response);
Console.WriteLine(s);
Console.ReadKey();
}
Код в MVC Controller:
[HttpPost]
public ActionResult Test(HttpPostedFileBase file)
{
XElement xml = XElement.Load(new System.IO.StreamReader(file.InputStream));
var test = new MyTest();
return File(test.RunTest(xml), "text/xml", "testresult.xml");
}
RunTest()
работает хорошо, так как этот метод работает, когда я загружаю файл через форму (в методе с с тем же именем, используя метод GET). RunTest()
возвращает XML с ответом.
Когда я отлаживаю приложение MVC, я вижу проблему: переменная файл
равна нулю!
Как это исправить? Что мне нужно изменить в моем консольном приложении, чтобы оно действительно отправило файл? Или стоит изменить метод MVC?
И, прежде чем пытаться использовать WebClient
, я попробовал этот код здесь: http://msdn.microsoft.com/en-us/library/debx8sh9.aspxи были те же результаты.