【问题标题】:Publish will not push adovbs.inc to target File System destination (classic asp and IIS 7.5)发布不会将 adovbs.inc 推送到目标文件系统目标(经典 asp 和 IIS 7.5)
【发布时间】:2015-08-16 18:55:31
【问题描述】:

我的 Visual Studio 2012 开发机器上有一个经典的 ASP 站点,我注意到 Publish 有一个奇怪的行为。

一个名为 adovbs.inc 的文件存在于站点根目录中名为 debug 的文件夹中。 (开发)站点上的很多文件都引用了此语法而没有问题:

<!--#include file="../debug/adovbs.inc" -->

在“成功”发布操作后,我注意到 adovbs.inc 文件实际上没有被复制到目标位置(在生产机器上),因此我得到:

包含文件“../debug/adovbs.inc”是 未找到。

我想知道文件类型 .inc 是否可能是问题所在?在我的站点中,大多数服务器端包含文件的文件类型为 .asp。 IIS 7.5 中的某个地方是否还有另一个“旋钮”?

在经历了很多挫折之后,我只是简单地复制了文件并使用 Windows 资源管理器将其粘贴,然后在运行时找到了该文件。

【问题讨论】:

  • 你为什么使用adovbs.inc?有一种更好的方法 Using METADATA to Import DLL Constants 存储在您的 global.asa 一个引用中,无论何时使用 ADODB 常量,都不需要 #include 引用。
  • @Lankymart - 但如果这发生在某处的网络服务器上,则无法保证对 TLB 的访问。
  • @Paul 为什么不呢?不需要访问TLB可以使用uuid来引用它不需要使用物理路径。如果这不起作用,那么ADODB 没有安装,所以无论哪种方式你都搞砸了,因为Server.CreateObject("ADODB.Command") 将无法创建组件。首先不应该将其部署到没有 MDAC 的 Web 服务器。

标签: iis asp-classic iis-7.5 publish server-side-includes


【解决方案1】:

不要对经典的 asp 网站使用 VS 发布网站选项,因为没有要编译的内容,而是使用复制网站选项,您可以在网站菜单中找到它或在解决方案资源管理器中右键单击网站。

【讨论】:

  • 谢谢;我可以看到您的建议有什么意义,但我有一个“混合”网站。大多数站点都是经典的 ASP,在 web 服务器上带有 VBscript,服务器端包含等。然而,上一轮的增强是使用 VB.Net 并使用 ASP.NET 2.0 完成的。结果是一个网络“应用程序”(即“复制网站”未作为选项公开;只有 PUBLISH)。
  • 我从你的回答中吸取了教训:有一些东西要编译,因为我有一个“混合”站点,在 VStudio2012 术语中,该项目是一个 Web 应用程序项目,而不是一个网站项目。简而言之,我现在遵循的教训是复制内容没有任何“错误”。 “老式方式”工作得很好;我看不出 PUBLISH 设施有什么了不起的地方。很多复杂性和隐藏的规则和陷阱。也许有一些好处,但对于“文件系统”部署,我只发现头疼。
  • 只是一个想法,但也许您可以在同一个解决方案中拥有 2 个不同的项目并分别部署?复制一个并发布另一个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-11
  • 1970-01-01
相关资源
最近更新 更多