【发布时间】:2020-05-11 08:45:10
【问题描述】:
我有两个web-apis
public string GetRData(string data)
{
var serialPort = new SerialPort("COM1", 9600, Parity.Even, 8, StopBits.One);
try
{
if(serialPort.IsOpen)
{
var stream = new SerialStream(serialPort);
stream.ReadTimeout = 2000;
//byte[] bytestoread = new byte[9999];
byte[] bytestosend = StringToByteArray(data);
serialPort.Write(bytestosend, 0, bytestosend.Length);
//receiveData = serialPort.ReadExisting();
serialPort.Close();
}
else
{
//serial port settings and opening it
serialPort.Open();
var stream = new SerialStream(serialPort);
stream.ReadTimeout = 2000;
//byte[] bytestoread = new byte[9999];
byte[] bytestosend = StringToByteArray(data);
serialPort.Write(bytestosend, 0, bytestosend.Length);
//receiveData = serialPort.ReadExisting();
serialPort.Close();
}
}
catch(Exception ex)
{
}
return data;
}
public string GetPData(string id)
{
var serialPort = new SerialPort("COM2", 9600, Parity.Even, 8, StopBits.One);
string receiveData = "";
try
{
//serial port settings and opening it
serialPort.Open();
var stream = new SerialStream(serialPort);
stream.ReadTimeout = 2000;
//byte[] bytestoread = new byte[9999];
//byte[] bytestosend = StringToByteArray(data);
//serialPort.Write(bytestosend, 0, bytestosend.Length);
receiveData = serialPort.ReadExisting();
serialPort.Close();
}
catch (Exception ex)
{
}
return receiveData;
}
WebApiConfig.cs
config.Routes.MapHttpRoute(
name: "GetRData",
routeTemplate: "api/{controller}/{action}/{data}",
defaults: null
);
config.Routes.MapHttpRoute(
name: "GetPData",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
每当我尝试点击GetPData 时,我都会在Postman 中得到以下响应
{ "Message": "没有找到与请求 URI 'https://localhost:44337/api/rtu/GetPData/1' 匹配的 HTTP 资源。", "MessageDetail": "在控制器 'RTU' 上找不到与请求匹配的操作。" }
我已搜索过此问题,但无法找到解决方案。
注意:GetRData 工作正常
【问题讨论】:
标签: asp.net-web-api2 http-status-code-405 webapi