我试图在MVC中使用3层架构
MVC UI – >服务 – >实体
MVC UI – >服务 – >实体
我正在使用内置的asp.net web开发服务器,我在其中配置了端口4515来运行UI层,我正在进行ajax调用,以便在端口35420配置的服务层中点击webapi服务.当我制作时ajax调用我收到如下状态500的错误
System.Net.sockets.socketException: No connection Could be made because the target machine actively refused it 127.0.0.1:32450.
当我查看IIS Express时,只有4515正在运行且35420服务层未运行.
如何摆脱这个问题?当我的UI层运行时,我希望我的服务层自动并行运行?有什么办法可以为此做出更好的解决方案吗?
使用Visual Studio 2013内置的IIS Express内置开发服务器,我无法为上述两个项目配置相同的端口号?
是否有可能在IIS Express内置的开发服务器中为visual studio 2013配置相同的端口号以进行上述两个项目?
Js功能:
function AddProduct() { var productmodel = { ProductName: $('#ProductName').val(),CreationDate: $('#CreationDate').val(),ProuductSerialNumber: $('#ProuductSerialNumber').val(),Descripiton: $('#Descripiton').val(),CreatedBy: $('#CreatedBy').val(),Price: $('#Price').val() }; var form = $("#productFrm"); if (form.valid()) { $.ajax({ url: 'Product/AddProduct',type: 'POST',data: JSON.stringify(productmodel),contentType: "application/json;charset=utf-8",beforeSend : function(xhr,opts){ //show loading gif $(".overlay").show(); $(".loading-img").show(); },success: function (data) { if (data.StatusCode === 204) { alert('Product Created Succesfully'); } else { alert('Something is wrong and server returned :' + data.StatusCode + ' and the reason is ' + data.ReasonPhrase); } },error: function (x,y,z) { alert(x + '\n' + y + '\n' + z); },complete : function() { //remove loading gif $(".overlay").hide(); $(".loading-img").hide(); } }); } } GloboMart.Application.Web.UI project Configured in IIS Port 4515: public class ProductController : Controller { private HttpClient _client; private HttpResponseMessage _response; public ProductController() { _client = new HttpClient(); _client.BaseAddress = new Uri("http://localhost:32450/"); } // GET: Product public ActionResult Index() { return View(); } [HttpPost] public async Task<JsonResult> AddProduct(Productviewmodel Productviewmodel) { using (var client = _client) { client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); StringContent content = new StringContent(JsonConvert.SerializeObject(Productviewmodel),Encoding.UTF8,"application/json"); _response = await client.PostAsync("api/Products/CreateProduct",content); } return Json(_response); } GloboMart.Services.WebApi project Confiugured in port http://localhost:32450/ using GloboMart.Domain.Entities.Repositories; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using GloboMart.Application.Web.UI.Models; using GloboMart.Domain.Entities.Entities; namespace GloboMart.Services.WebApi.Controllers { public class ProductsController : ApiController { private IProductRepository _repository; public ProductsController(IProductRepository Repository) { _repository = Repository; } // GET api/values public IEnumerable<string> Get() { return new string[] { "value1","value2" }; } // GET api/values/5 [HttpGet] public List<Product> GetAllProducts() { var products= _repository.GetAll(); return products.ToList(); } // POST api/values [HttpPost] public void CreateProduct([FromBody] Productviewmodel Productviewmodel) { var Product=ConvertProductModelToProduct(Productviewmodel); _repository.Add(Product); } // PUT api/values/5 public void Put(int id,[FromBody]string value) { } // DELETE api/values/5 public void Delete(int id) { } private Product ConvertProductModelToProduct(Productviewmodel Productviewmodel) { `enter code here` var Product = new Product() { Name=Productviewmodel.ProductName,SerialNumber=Productviewmodel.ProuductSerialNumber,Description=Productviewmodel.Descripiton,CreatedBy=Productviewmodel.CreatedBy,CreationDate=Convert.ToDateTime(Productviewmodel.CreationDate),Price=Productviewmodel.Price }; return Product; } } }
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。