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

时间:2011-11-02 23:01:00

标签: c# asp.net deployment

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

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

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

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

  

文件'/Site.master'不存在。

  

无法创建类型'myNamespace.webServiceName'。

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

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

另一个选择是找到一个不同的托管服务提供商(由TomTom建议),但根据您的情况,这可能不可行。

答案 3 :(得分:0)

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

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