ASP.NET MVC 3で開発されたWebアプリケーションにXMLファイルを送信し、応答として別の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
がnullです。
どうすれば修正できますか?実際にファイルを送信するには、コンソールアプリケーションで何を変更する必要がありますか?それとも、MVCメソッドを変更する場合ですか?
そして、使用する前にWebClient
、ここでこのコードを試しました:http: //msdn.microsoft.com/en-us/library/debx8sh9.aspx、そして同じ結果が得られました。