Как загрузить файл в ASP.NET MVC из консольного приложения

Я пытаюсь заставить консольное приложение отправлять файл 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и были те же результаты.

7
задан John Saunders 3 April 2012 в 22:28
поделиться