繁体   English   中英

如何在没有虚拟目录的情况下部署.NET Web应用程序

[英]How to deploy .NET web application without virtual directory

我有一个无法登录服务器的托管帐户,必须使用管理面板和FTP部署项目。

我有一个ASP.NET 2.0 Webforms Web应用程序,我需要将其部署到一个深层文件夹中,但是我不相信我有权在此文件夹上创建虚拟目录。

通过进入并创建虚拟目录,我可以在自己的服务器上正确部署此代码/应用程序。 然后,该应用程序运行正常。 如果没有虚拟目录,则在要部署到的生产环境中会收到相同的错误。

它们都是解析器错误,例如

文件“ /Site.master”不存在。

无法创建类型“ myNamespace.webServiceName”。

我需要以其他方式构建它吗? 发布不同吗? 应该是网站而不是Web应用程序吗? 我在Web服务器上的几个文件夹中,这些文件夹肯定具有.NET,并且可以与其他应用程序一起使用。

基本上,您更改主机。 点。

任何提供ASP.NET的主机都应提供应用程序的创建功能,这是虚拟目录的一种特殊形式。 致电他们的支持。 如果它们没有帮助,请运行。 违反合约。

通常,您的托管服务提供商会提供一种通过某种管理面板将虚拟目录转换为应用程序的方法。 如果没有,您可以尝试致电并让他们为您完成。

过去,我不得不与一些托管服务提供商打交道。 本质上,它们为您提供了一个虚拟目录,其中包含用于dll的单个活动“ bin”文件夹。 问题在于,当您在Visual Studio项目的根目录下构建Web应用程序时,所有路径都完全不同。

解决该问题的一种方法是,从Visual Studio项目中生产服务器上的虚拟目录的根开始,重建完全相同的文件夹结构。 管理项目(以及适当的名称空间,如果您是纯粹的程序员)会比较麻烦,但是您可以将编译后的dll放在“ / bin”文件夹中,并将其余文件直接发布到正确的文件夹。 这样,您的项目将知道生产服务器上存在的文件的完整路径,因此使用Server.MapPath()将产生正确的结果。

另一种选择是找到其他托管服务提供商(由TomTom建议),但这可能不可行,具体取决于您的情况。

我找到了一种在共享主机(1&1)中创建虚拟目录的方法。 这是基于Web的文件浏览器中的一个隐藏的功能,我没想到。

最终,如果不创建虚拟目录,我将无法部署此功能,因此幸运的是,它们DID实际上具有此功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM