qq_17031883 2024-03-19 01:19 采纳率: 32.3%
浏览 244
已结题

webapi 发布到iis后无法访问

webapi 发布到iis后无法访问,报404,vs调试却可以

img

img

  • 写回答

18条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-19 01:32
    关注

    引自免费微信小程序:皆我百晓生

    从你提供的信息来看,你的Web API项目在发布到IIS后返回404错误,这通常意味着IIS没有找到预期的资源。有几个可能的原因和相应的解决步骤:

    1. 应用程序池配置:确保你的应用程序池设置为.NET Core兼容的版本,比如.NET Core 3.1.NET 5/6,并启用Managed Pipeline ModeNo Managed Code

    2. 承载模型:检查launchSettings.json文件中的applicationUrl,确保它与IIS中网站的绑定URL一致。如果你使用的是IISIntegration,应用应该使用UseIIS而不是UseUrls

    3. 应用程序根目录:确认IIS的网站物理路径指向了发布后的应用程序的根目录,通常包含web.config文件。

    4. 路由问题:你的控制器路由是[Route("/Consultation/api/pdf-viewer")],确保在尝试访问时使用了正确的URL。例如,如果网站基础URL是http://localhost,你应该访问http://localhost/Consultation/api/pdf-viewer

    5. web.config配置:确保你的web.config文件包含了正确的ASP.NET Core模块配置。这是一个示例配置:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <system.webServer>
          <handlers>
            <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
          </handlers>
          <aspNetCore processPath="dotnet" arguments=".\YourAppNameHere.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
        </system.webServer>
      </configuration>
      

      注意替换YourAppNameHere为你的实际应用名称。

    6. 权限问题:检查IIS应用池账户是否有读取发布目录的权限。

    7. 日志排查:启用ASP.NET Core的日志记录,查看是否有更详细的错误信息。可以在Startup.cs中添加以下代码:

      public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
      {
          if (env.IsDevelopment())
          {
              app.UseDeveloperExceptionPage();
          }
          else
          {
              app.UseExceptionHandler("/Error");
              // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
              app.UseHsts();
          }
      
          // ...其他配置...
      
          app.UseHttpsRedirection();
          app.UseRouting();
      
          // ...其他配置...
      }
      

      然后查看%APPDATA%\ASP.NET\Core\<version>\log目录下的日志文件。

    8. URL重写:如果你有URL重写规则,确保它们在IIS中正确配置。

    请按照这些步骤逐一排查,如果问题依然存在,请提供更多的错误信息,例如IIS的错误日志、浏览器的开发者工具网络面板中的详细错误等,以便进一步分析。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(17条)

报告相同问题?

问题事件

  • 系统已结题 3月29日
  • 已采纳回答 3月21日
  • 修改了问题 3月19日
  • 修改了问题 3月19日
  • 展开全部

悬赏问题

  • ¥15 webstorm上开发的vue3+vite5+typeScript打包时报错
  • ¥15 vue使用gojs,需求在link中的虚线上添加方向箭头
  • ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
  • ¥15 SPSS分类模型实训题步骤
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么
  • ¥20 limma多组间分析最终p值只有一个
  • ¥15 nopCommerce开发问题
  • ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
  • ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决