当前位置: 首页 > 知识库问答 >
问题:

仅当部署在UAT web服务器时路由错误404。在当地工作。ASP.NET核心

郎魁
2023-03-14

我已经在本地完成了对ASP.NET核心应用程序的测试,它工作得很好。然而,在发布到UAT服务器后,我的视图上的触发器出现了404个错误,我无法确定原因。我可能错过了一些明显的东西,希望看到新鲜的眼睛。谢谢你。

我尝试在启动时修改路由,并尝试在控制器中进行混合路由。

startup.cs中配置方法的相关部分:

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=StartPage}/{id?}");
        });
    <form action="@Url.Action("StartSlsProcess", "Home")"  method="post" enctype="multipart/form-data" id="trigger">
        <div id="process-trigger">
            @(Html.DevExtreme().Button()
                  .Text("Start SLS")
                  .Type(ButtonType.Success)
                  .UseSubmitBehavior(true)
                  )

        </div>
    </form>
    [HttpPost]
    public ActionResult StartSlsProcess()
    {

        var empty = new string[0];

        ConsoleApp.Program.StartProcessFromUI(empty);

        return new EmptyResult();

    }
        <form action="@Url.Action("Upload", "Home")" method="post" enctype="multipart/form-data" id="uploader">
        <div id="fileuploader-container">
            @(Html.DevExtreme().FileUploader().Name("file")
                  .ID("file-uploader")
                  .Accept("*")
                  .UploadMode(FileUploadMode.Instantly)
                  .UploadUrl(Url.Action("Upload", "Home"))
                  //.OnUploadError("fileUploader_onUploadError")

                  //.OnValueChanged("fileUploader_valueChanged")
                  )  
        </div>
    </form>

HomeController方法:

[HttpPost]
    public ActionResult Upload()
    {
        try
        {
            var file = Request.Form.Files["file"];
            var path = Path.Combine(_hostingEnvironment.WebRootPath, "uploads");

            if (!Directory.Exists(path))
                Directory.CreateDirectory(path);

            using(var fileStream = System.IO.File.Create(Path.Combine(path, file.FileName))) {
                file.CopyTo(fileStream);
                fileStream.Flush();
            }

            MoveFileFromServer(path, file); 

        }
        catch (Exception e)
        {
            Console.WriteLine(e);
            throw;
        }

        return new EmptyResult();

    }

此外,我的ConsoleApp上的方法StartProcessFromUI实际上被击中了,只是在前台返回了404错误。

共有1个答案

阴焱
2023-03-14

至少对于C#端,我可以告诉你这不是一个编程问题。一般来说,网络代码并不关心另一端是否在同一台计算机上,是否在同一台交换机上,或者是否在旅行者2号探测器上。

确定有一条路径是网络问题,而不是编程问题。正如您的标题所说,错误是404/路由错误。所以它肯定是在网络的某个地方。可能服务器没有设置为允许外部(非本地主机)连接,或者某些类似的安全功能。出于安全原因,许多默认配置文件都是使用这样的设置创建的。它也可能是一个过度的防火墙。

如果有疑问,您可以使用一个简单的HTML文件来验证它,该文件应该以存储在磁盘上的形式交付。

 类似资料:
  • 我将开发一个简单的Angular 2应用程序。我使用Angular CLI创建了一个带有路由的项目,并使用'ng generate component‘命令向应用程序添加了几个组件。然后我在app-routing.module.ts中指定路由,如下所示。 app.module.ts如下所示。 我没有为其他组件添加任何修改。然后,我使用'ng serve'命令部署了应用程序,应用程序可以很好地处理链

  • 我已经在localhost上运行了我的应用程序,一切都运行得很好,但是一旦我部署到heroku上,主页就可以正常工作了,但是当我点击“my-app/stocks/aapl”时,我得到了404。我查看了其他有此问题的人,并添加了一个static.json文件,但这没有帮助。我已经从我的server.js中粘贴了我的代码、我的文件夹结构、static.json和我的app.js以供参考。 static

  • 我在我的本地主机上开发了一个laravel应用程序,运行非常好。我正试图使用Ubuntu 20.04上的nginx将其部署到AWS Lightsail实例上。我已经上传了我的laravel应用程序,并将nginx根目录更改为laravelapp/public。 主索引页(着陆页)工作正常,但我的路线都不工作(即 /login, /about等)。当我试图访问任何路线时,我得到一个404未找到错误。

  • 我正在尝试为spring中的404错误配置一个自定义页面。我的应用程序还配置了Spring Security性。 这是web.xml配置 浏览器通过正确的url访问404.jsp。但是当出现404错误时抛出404。jsp不会显示。而是显示一个空白页。 有关于如何解决此问题的建议吗?提前谢谢。 编辑 这就是我web.xml的样子。 更新了spring配置

  • 我一直试图在tomcat上部署一个简单的Web服务,但我没有成功,它总是返回我404错误。 我使用了这个例子中的代码 http://www.mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/ 但无法使用war,因为我在服务器中设置了上下文信息。xml 因此,我使用了与mkyong相同的代码,但在部署时遵循以下步骤:

  • 我们团队决定尝试使用OpenShift Origin server部署服务。我们有一个单独的虚拟机,安装了OpenShift原始服务器,运行良好。我能够部署我们的本地docker映像,这些服务也运行良好——pod已启动并运行,获得了自己的IP,我可以从虚拟机访问服务endpoint。 问题是我无法让它工作,所以服务暴露在机器之外。我读到了路由器,它被认为是公开服务的正确方式,但它只是不起作用,现在

  • 我有几个微服务,客户服务和客户评级服务。第一个调用后者。 我在对customer-rating-service的调用中放置了一个断路器,并强制该服务始终抛出一个5xx错误来验证断路器。然而,客服总是打它,显然电路从来没有打开过。 客户-评级-服务-Istio虚拟服务 客户-评级-服务-Istio目标规则 如您所见,我设置了,所以在第一次从customer-service调用到customer-ra

  • 我创建了使用jdbctemplate的spring boot应用程序,在localhost上一切都很好,但当我将应用程序部署到Heroku并访问endpoint时,我得到了以下信息: 如果SQL查询不好,那么同一个应用程序如何在本地机器上工作呢? 下面是我使用的jdbcTemplate方法: