【发布时间】:2021-09-26 18:56:01
【问题描述】:
我有一个 Web 应用程序的工作代码库,它编写为 ASP.net webform 应用程序,Visual Studio 社区版。如何启动应用程序。意思是我如何启动应用程序/调试,
社区版 IDE 需要 .sln 文件之类的东西,我没有,或者它不存在于代码库中。
我已经编写代码十多年了,但是我是 ASP.net 的新手,需要一些帮助。
【问题讨论】:
我有一个 Web 应用程序的工作代码库,它编写为 ASP.net webform 应用程序,Visual Studio 社区版。如何启动应用程序。意思是我如何启动应用程序/调试,
社区版 IDE 需要 .sln 文件之类的东西,我没有,或者它不存在于代码库中。
我已经编写代码十多年了,但是我是 ASP.net 的新手,需要一些帮助。
【问题讨论】:
通常(如您所述),您会找到(拥有)一个 .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() 事件的控制等等。
但是,如前所述,在许多托管环境中,您只能获得一个文件夹和一些存放文件夹和网页的地方 - 因此您无法选择完整的网络应用发布。
【讨论】:
@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
它不工作。
出现以下错误
看来我因缺少指甲而输掉了一场战斗。能否请您澄清一下。
【讨论】: