Привет! Я пытаюсь вызвать веб-службу WCF из проекта ASP.NET MVC по умолчанию, чтобы загрузить фотографию на сервер с веб-сайта ASP.NET MVC.
Мой веб-сервис WCF выглядит так:
public void SaveImage(string fileName, byte[] photo)
{
writeByteArrayToFile(Path.Combine(@"c:\TempImg", fileName), photo);
}
public void writeByteArrayToFile(string fileName, byte[] buffer)
{
using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite))
{
fs.Write(buffer, 0, (int)buffer.Length);
}
}
В HomeController на проекте я написал этот код:
using HackedTwo.ServiceReference1;
namespace HackedTwo.Controllers
{
[HandleError]
public class HomeController : Controller
{
private ServiceReference1.IService1 myWS;
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{
if (file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
BinaryReader b = new BinaryReader(file.InputStream);
byte[] binData = b.ReadBytes(file.ContentLength);
myWS.SaveImage(fileName, binData);
}
return RedirectToAction("Index");
}
}
}
Может быть, я близок к тому, чтобы заставить его работать? Но когда я запускаю его, я получаю «NullReferenceException», в верхней части кода, где я объявляю веб-службу, есть зеленая линия под «myWS», и я получаю это сообщение из Visual Studio «Field» HackedTwo.Controllers.HomeController. .myWS 'никогда не назначается и всегда будет иметь значение по умолчанию null ". Так или иначе, я подозреваю, что это может быть проблемой, почему это не работает. Если это так, то мой вопрос сейчас: Как назначить поле 'HackedTwo.Controllers.HomeController.myWS'? Или я должен ссылаться на веб-сервис каким-либо другим образом в моем проекте ASP.NET MVC?