C# 调试Web API返回资源不匹配错误
当我试图通过调用C# 调试Web API返回资源不匹配错误,c#,asp.net,asp.net-mvc,asp.net-web-api,C#,Asp.net,Asp.net Mvc,Asp.net Web Api,当我试图通过调用 http://localhost:5/api/GetEmployeesDEV 它返回的错误类似于 未找到与请求URI匹配的HTTP资源'http://localhost:57764/api/GetEmployeesDEV'. 在控制器“GetEmployeesDEV”上未找到与请求匹配的操作。 ASP.NET Web API,它调用Odata端点并返回调用收到的响应。我有下面的控制器代码 public class GetEmployeesDEVController :
http://localhost:5/api/GetEmployeesDEV
它返回的错误类似于
未找到与请求URI匹配的HTTP资源'http://localhost:57764/api/GetEmployeesDEV'. 在控制器“GetEmployeesDEV”上未找到与请求匹配的操作。
ASP.NET Web API,它调用Odata端点并返回调用收到的响应。我有下面的控制器代码
public class GetEmployeesDEVController : ApiController
{
[HttpGet]
private async Task<EmployeeDTO.RootObject> Get()
{
string userName_Core = ConfigurationManager.AppSettings["core_Username"];
string password_Core = ConfigurationManager.AppSettings["core_Password"];
string BaseURL_Core = ConfigurationManager.AppSettings["BaseURL_Core"];
var byteArray_Core = Encoding.ASCII.GetBytes(userName_Core + ":" + password_Core);
EmployeeDTO.RootObject returnObj = new EmployeeDTO.RootObject();
try
{
// GET
using (var client_Core = new HttpClient())
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(delegate { return true; });
Uri uri = new Uri(BaseURL_Core);
client_Core.BaseAddress = uri;
client_Core.DefaultRequestHeaders.Accept.Clear();
client_Core.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client_Core.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray_Core));
string core_URL = BaseURL_Core;
var response = client_Core.GetAsync(core_URL).Result;
var responsedata = await response.Content.ReadAsStringAsync();
returnObj = JsonConvert.DeserializeObject<EmployeeDTO.RootObject>(responsedata);
}
}
catch (Exception ex)
{
throw ex;
}
return returnObj;
}
公共类GetEmployeesDEVController:ApicController
{
[HttpGet]
私有异步任务Get()
{
字符串userName\u Core=ConfigurationManager.AppSettings[“Core\u userName”];
字符串password_Core=ConfigurationManager.AppSettings[“Core_password”];
字符串BaseURL_Core=ConfigurationManager.AppSettings[“BaseURL_Core”];
var byteArray\u Core=Encoding.ASCII.GetBytes(用户名\u Core+“:”+密码\u Core);
EmployeeDTO.RootObject returnObj=新EmployeeDTO.RootObject();
尝试
{
//得到
使用(var client_Core=new HttpClient())
{
ServicePointManager.ServerCertificateValidationCallback=新的RemoteCertificateValidationCallback(委托{return true;});
Uri=新Uri(BaseURL\u核心);
client_Core.BaseAddress=uri;
client_Core.DefaultRequestHeaders.Accept.Clear();
client_Core.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
client_Core.DefaultRequestHeaders.Authorization=new System.Net.Http.Headers.AuthenticationHeaderValue(“Basic”,Convert.ToBase64String(byteArray_Core));
字符串core\u URL=BaseURL\u core;
var response=client\u Core.GetAsync(Core\u URL).Result;
var responsedata=await response.Content.ReadAsStringAsync();
returnObj=JsonConvert.DeserializeObject(responsedata);
}
}
捕获(例外情况除外)
{
掷骰子;
}
返回OBJ;
}
不确定我是否遗漏了某些内容。我没有使用RouteConfig文件更改任何内容请更改函数的范围 从私人
private async Task<EmployeeDTO.RootObject> Get()
private异步任务Get()
向公众发布
public async Task<EmployeeDTO.RootObject> Get()
公共异步任务Get()
操作需要公开,才能用于路由