在Asp.net Core中发布项目后找不到控制器



在我发布项目并在Electron中使用前端应用程序运行api应用程序后,我遇到了找不到控制器的问题。

我可以使用visual studio调试器访问控制器,没有任何问题。

不知道为什么会发生这种情况,我可以很好地访问应用程序中的所有其他控制器,除了我添加的这个新控制器。

这是控制器代码

[HttpGet]
[Route("Backup")]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}

因此,当我调试web api时,我可以访问控制器。然后我发布了api,用这个通过电子启动它

let coreProcess = null;
function startApi() {
const proc = require('child_process').spawn;
// run server
console.log(process.env.NODE_ENV === 'dev');
console.log(`isDevelopment ${isDevelopment}`);
console.warn(`dirname: ${__dirname}`);
const apiPath = path.join(isDevelopment ? __dirname + '../../..' : '..', 'Home-Inventory-Application', 'core', 'Home-Inventory-Core.exe');
console.warn(`api path: ${apiPath}`);
coreProcess = proc(apiPath);
coreProcess.stdout.on('data',
(data) => {
writeLog(`stdout: ${data}`);
if (win == null) {
createWindow();
}
});
//Kill process when electron exits
process.on("exit", function () {
writeLog('exit');
coreProcess.kill();
});
function writeLog(msg) {
console.log(msg);
}
}

api可以与现有的控制器一起工作,但新的控制器会得到404 Not Found

如果有人能就如何解决这个问题提出一些建议,那就太好了。。

我曾尝试在我的应用程序中运行RouteDebugger nuget包,但它不起作用。

我已经解决了这个问题。我的发布目录似乎是错误的——它将转到一个旧目录。我修正了路径并进行了测试,现在一切正常。感谢各位提出建议的回复。

最新更新