You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署.NET Core Web API至共享主机后访问失败求助

解决.NET Core Web API访问提示“资源不存在”的排查步骤

碰到这种访问失败的情况别着急,咱们从最基础的配置开始排查,这都是.NET Core API部署时常见的坑:

  • 先核对路由注解是否正确
    你的DataController和Tiles方法的路由配置得和访问路径匹配才行。举个标准的例子:

    [ApiController]
    [Route("api/[controller]")] // 这里会自动替换成api/data
    public class DataController : ControllerBase
    {
        [HttpGet("tiles")] // 拼接后就是api/data/tiles
        public IActionResult GetTiles()
        {
            // 你的业务逻辑
            return Ok("请求成功");
        }
    }
    

    要是你给方法用了自定义路由,比如[Route("api/data/tiles")],一定要检查路径拼写,有没有多写、少写字符或者斜杠的问题。

  • 确认部署的是发布后的完整文件
    别直接把项目源码传到服务器!得先在本地用dotnet publish -c Release命令生成发布包,里面包含web.config、API程序集、依赖库这些必要文件。上传的时候要把整个发布文件夹的内容都传到www.rosenet.om根目录,缺了web.config的话,IIS没法把请求转发给.NET Core进程,肯定会报资源找不到。

  • 检查服务器是否装了对应版本的.NET Core Runtime
    服务器上必须安装和你项目目标框架一致的.NET Core Runtime(比如你用的是.NET 6,就装.NET 6 Runtime)。可以在服务器上打开命令行,运行dotnet --version看看已安装的版本,版本不匹配的话,API根本启动不起来,自然没法响应请求。

  • 查看应用日志找启动异常
    要是API启动失败,会生成日志告诉你原因。你可以:

    • 看IIS的日志,一般在C:\inetpub\logs\LogFiles目录里;
    • 也可以在你的API项目里配置日志输出到文件,这样能直接看到启动时的具体错误(比如数据库连不上、依赖注入出错之类的)。
  • 核对IIS站点的配置
    检查IIS里你的站点是不是指向了正确的根目录(就是你传文件的www.rosenet.om),还有应用程序池的.NET CLR版本要设成无托管代码——因为.NET Core是独立运行的,不需要IIS的托管环境。另外确认站点的HTTP绑定是正常的,端口80没被其他程序占用。

  • 先在本地测试排除代码问题
    先在本地发布API,然后运行dotnet YourApiProject.dll,用http://localhost:5000/api/data/tiles测试能不能访问。如果本地没问题,那就是服务器部署的配置问题;如果本地也不行,那就是代码或者路由的问题,先把本地的问题解决了再部署。


内容的提问来源于stack exchange,提问作者user10239717

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:40:55