それを拒否したため、私はMVC MVC UIに3階層化アーキテクチャを使用しようとしています行わことはできなかった - >サービス - >エンティティに建てられ、私が使用しています接続なしで、ターゲットマシンが積極的に127.0.0.1:32450
私はajax呼び出しを行うときにポート35420.andで設定されているサービス層でWebAPIサービスをヒットするajax呼び出しを作成しています。状態500で以下のようなエラーが表示される
System.Net.Sockets.SocketException:ターゲットマシンが積極的にそれを拒否したため、接続できませんでした。127.0.0.1:32 450。
IISエクスプレスで見ると、4515のみが実行されており、35420サービス層は実行されていません。
この問題を解決するにはどうすればよいですか? UIレイヤが実行されているときに、サービスレイヤが自動的に並行して実行されるようにしたいのですか?私はこれに対してより良い解決策を達成できる方法はありますか?
ビジュアルスタジオ2013用に開発された組み込みIIS Expressを使用して、2つのプロジェクトで同じポート番号を設定することはできません。
Visual Studio 2013用のIIS Express組み込み開発サーバーでは、この2つのプロジェクトで同じポート番号を設定することは可能ですか?
の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;
}
}
}
あなたは複数のプロジェクトを持っており、すべてがデバッグで始まります:http://stackoverflow.com/questions/3697092/starting-ビジュアルスタジオ2010のデバッグ時の複数プロジェクト – rene
私はあなたが間違ったポートに接続しようとしているのではなく、ポート番号(35420と32450)の不一致がタイプミスであると思いますか? – Chris