ASP.NET MVC 3で開発されたWebアプリケーションにXMLファイルを送信し、別のXMLを応答として受け取るコンソールアプリケーションを作成しようとしています。エラーがコンソールアプリケーションに返さコンソールアプリケーションからASP.NET MVCにファイルをアップロードする方法
です:コンソールアプリケーションのコードは
Object reference not set to an instance of an object.
です
: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();
}
The remote server returned an error: (500) Internal Server Error.
私はFiddler2をが実行して取得する場合、私はこのエラーが表示します
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と同じ結果がありました。
それは働いた!私はちょうど 'as HttpPostedFile'を削除する必要があった、コンパイルしていなかった...ありがとう! –
おかげで、助けてくれた! – f0x