如何部署没有虚拟目录的.net web应用程序

本文关键字:net 应用程序 web 虚拟 何部署 部署 | 更新日期: 2023-09-27 18:13:04

我有一个主机帐户,我不能登录到服务器,我必须使用管理面板和FTP来部署一个项目。

我有ASP。. NET 2.0 webforms Web应用程序,我需要部署到一个深文件夹,但不相信我有权限在这个文件夹上创建一个虚拟目录。

我可以通过进入并创建一个虚拟目录在我自己的服务器上正确地部署这个代码/应用程序。然后应用程序运行良好。如果没有虚拟目录,我将在尝试部署的生产环境中遇到同样的错误。

都是解析器错误,如

文件'/Site。Master '不存在

无法创建类型' mynamspace . webservicename '.

我需要以不同的方式构建它吗?以不同的方式发布?它应该是一个网站而不是一个Web应用程序吗?我在一个网络服务器上有几个文件夹,肯定有。net,肯定与其他应用程序一起工作。

如何部署没有虚拟目录的.net web应用程序

基本上你改变了主机。点。

任何提供ASP服务的主机。. NET还应该提供应用程序的创建,这是一种特殊形式的虚拟目录。打电话给他们的支持。如果他们没有帮助,就跑。违约

通常您的主机提供商将有一种方法通过某种管理面板将虚拟目录转换为应用程序。如果没有,你可以试着打电话让他们为你做。

在过去的一些托管提供商中,我不得不处理这个问题。从本质上讲,它们为您提供了一个虚拟目录,其中包含一个用于dll的活动"bin"文件夹。问题是,当你在Visual Studio项目的根目录下构建Web应用程序时,所有的路径都是完全不同的。

我们解决这个问题的一个方法是在Visual Studio项目的生产服务器上从虚拟目录的根目录开始重建完全相同的文件夹结构。管理项目(和适当的命名空间,如果你在这方面是一个纯粹主义者)有点麻烦,但是你可以把编译后的dll放在"/bin"文件夹中,并将其余的文件直接发布到正确的文件夹中。通过这样做,您的项目将知道文件的完整路径,因为它们将存在于生产服务器上,因此执行类似Server.MapPath()的操作将产生正确的结果。

另一个选择是找一个不同的主机提供商(TomTom建议),但这可能不可行,取决于你的情况。

我找到了一种在我的共享主机(1&1)上创建虚拟目录的方法。这是一个隐藏在网页文件浏览器中的功能,我没有想到它会出现。

最终我无法在不创建虚拟目录的情况下部署它,所以幸运的是他们实际上有这个功能。