【问题标题】:How to start asp.net application without .sln file如何在没有 .sln 文件的情况下启动 asp.net 应用程序
【发布时间】:2021-09-26 18:56:01
【问题描述】:

我有一个 Web 应用程序的工作代码库,它编写为 ASP.net webform 应用程序,Visual Studio 社区版。如何启动应用程序。意思是我如何启动应用程序/调试,

社区版 IDE 需要 .sln 文件之类的东西,我没有,或者它不存在于代码库中。

我已经编写代码十多年了,但是我是 ASP.net 的新手,需要一些帮助。

【问题讨论】:

    标签: asp.net webforms


    【解决方案1】:

    通常(如您所述),您会找到(拥有)一个 .sln 文件。

    但是,如果你不这样做,那么通常你有(会找到)一个用于 vb 的 .vbproj 文件, 或 c# 的 csproj 文件。 当您打开这些“项目文件”时,VS 会为您创建 .sln 文件。

    然而,第三种可能性是这不是一个 ASP 网站应用程序,而是一个 asp.net 网站(请注意我使用的术语非常接近:

    Asp Web site  = (no sln, and no project file)
    Asp Web Site Application = (should have a .sln, but you have one if you open proj file).
    

    那么,如果没有.sln文件,也没有找到.vbproj/csproj文件呢?

    然后你就有了所谓的 asp.net 网站。

    它们在编辑、编写代码等方面非常接近。但是,网站不会作为项目 (.sln/.proj) 文件打开,但您只需使用此选项:

    在这种情况下,当您选择上述选项时,您只需浏览到一个文件夹,而您根本没有 .sln/.proj 文件。您实际上只是打开了一个包含网站的文件夹。

    我没有一个很好的链接来解释 asp.net 网站asp.net 网站之间的区别应用程序。

    但是,主要区别在于:

    Asp.net 网络应用程序

    near ALWAYS 希望您有一个专用服务器可以发布到(因此低成本托管将无法正常工作)。

    您可以控制整个网站的功能 - 可以编写自定义页面处理程序。您有更多的身份验证选项。实际上,您可以编码和更改互联网服务的“基本”功能。因此,您可以直接使用 Web 服务器功能 - 并且可以覆盖行为。

    Asp.net 网站 这实际上只是一个子文件夹。因此,例如,此选项可用于将您的网站文件夹上传到现有服务器。而且你可以修改一个页面(和后面的代码),你真的不必重新发布。如果您使用一些低成本的虚拟主机,当然必须使用此选项。您不能发布 Web 应用程序,因为它会在很大程度上覆盖服务器功能 - 包括基本起始页面。

    使用网站应用程序?整个站点被重新编译,整个应用程序被编译成一个 .dll。 (很像桌面应用程序,当然附加的 .dll 和库可以显示为单独的 .dll)。但是,它们通常都合并到一个 .dll 中。

    因此,现有的 .sln 或 .csproj/vbprjo 文件将在很大程度上告诉您您拥有哪种类型的网站。

    虽然网站应用程序需要对整个网站进行完全重新发布 - 即使只是对代码进行很小的更改 - 我仍然更喜欢在该选项可用时进行设置。这是因为有额外的选项,以及对 session() 事件的控制等等。

    但是,如前所述,在许多托管环境中,您只能获得一个文件夹和一些存放文件夹和网页的地方 - 因此您无法选择完整的网络应用发布。

    【讨论】:

      【解决方案2】:

      @albert-d 很棒的答案!!它带来了很多发展,一些我是如何想出一些东西的。

      cd theapp
      dotnet new web # Create basic web soln/app
      dotnet run
      

      这种在文件夹上创建的默认网络应用程序

      info: Microsoft.Hosting.Lifetime[0]
            Now listening on: https://localhost:5001
      info: Microsoft.Hosting.Lifetime[0]
            Now listening on: http://localhost:5000
      info: Microsoft.Hosting.Lifetime[0]
            Application started. Press Ctrl+C to shut down.
      info: Microsoft.Hosting.Lifetime[0]
            Hosting environment: Development
      info: Microsoft.Hosting.Lifetime[0]
            Content root path: /Users/raj/theapp/
      

      在浏览器上它提供了不错的输出

      但是当我尝试执行现有的旧文件时,例如

      http://localhost:5000/Default.aspx
      

      它不工作。

      出现以下错误

      看来我因缺少指甲而输掉了一场战斗。能否请您澄清一下。

      【讨论】:

      • 作为一般规则,你不需要任何命令行的东西(IDE 意味着集成环境——它都是自动的)。您启动 VS,打开项目(或网站),然后按 F5,您的网站正在运行。任何其他方法都是非常愚蠢的。所以,不清楚你为什么要搞乱命令行的东西——从来没有也从来没有这样做过。你必须跟上 VS 的速度——你在那里谈论一个相当大的系统并期望在 5 分钟内学习整个 .net 框架和 VS 是不会发生的。但是启动 VS - 创建一个示例项目,然后按 F5 - 什么都不需要,也不需要什么
      • 我有 Visual Studio 社区版,你所说的方式适用于我创建的测试应用程序,它很酷,但是使用我想要增强、修改、添加的应用程序的代码库功能,它不起作用。因此,我正在做铺垫。
      • 好吧,如果那个站点有网页,并且有源代码(代码隐藏),那么你就有了这个站点——这建议你使用如下所述的开放网站。因此,网站项目没有 sln 文件,也没有项目文件。但是,如果您按照以下方式打开,那么从那时起,两种情况下的体验几乎相同。真正决定这是您最终部署到的目标服务器。但是,在该站点上工作不需要任何命令行工具,也不需要更改,也不需要运行。一切都应该发生在 VS 中。社区 VS 版本没有被压缩或减少功能。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-09
      • 1970-01-01
      • 2015-01-28
      • 2019-02-19
      • 1970-01-01
      • 2017-09-06
      • 2016-05-01
      相关资源
      最近更新 更多