我正在尝试让控制台应用程序将 XML 文件发送到在 ASP.NET MVC 3 中开发的 Web 应用程序,并接收另一个 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 控制器中的代码是:
[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 应用程序时,我看到了问题:变量file
为空!
我该如何解决?我必须在控制台应用程序中进行哪些更改才能真正发送文件?还是改变MVC方法的情况?
而且,在尝试使用之前WebClient
,我在这里尝试了这段代码:http: //msdn.microsoft.com/en-us/library/debx8sh9.aspx,并且得到了相同的结果。