2013-04-07 120 views
1

我有一个asp.net 4.0 webforms应用程序。它是一个网站,而不是一个项目,所以它在部署之前不会被预编译。Asp.net webforms C#文件编译

我对单个代码隐藏文件(c#文件)进行了更改,我需要将其上传到网站。如果我只上传这个文件,它会在网站上编译吗?或者我需要上传其他文件来触发编译?例如,是否需要将前端.aspx文件一起上传?

我问这是因为我所做的更改适用于我的开发机器,但不适用于生产服务器。我怀疑,也许上传的C#文件没有在Web服务器上编译,因此,该网站仍在运行较旧的C#文件。

任何人都有这个想法?提前致谢。

编辑:我应该指定它是一个网站项目,而不是一个web应用程序项目。

+0

如果您使用的是未预编译的网站项目,则应该可以通过http://msdn.microsoft.com/en-us/library/dd547590.aspx#compilation对其进行更新。 您是否尝试过回收站点? (使用判断,因为这将杀死任何会话,可能缓存等...) – Scott 2013-04-07 02:53:42

回答

0

让我澄清这一点。您在代码后面的ASP.NET页面中进行了更改。现在,您想要将这些新更改上传到服务器。那是对的吗?

好的,您只需将更新后的.ASPX页面(当然还有自动隐藏的代码隐藏文件)上传到服务器,并替换旧的.ASPX页面。现在应该显示该特定页面的更改。如果你预先编译或不是你的网站,它无关。

0

您不必再次编译它。您上传新文件后,应该更新您的网络应用程序。最有可能的缓存问题。尝试使用其他浏览器或清除当前浏览器上的缓存。

+0

对不起,我做了OP的编辑。这是一个网站项目,而不是一个Web应用程序项目。网站项目在第一次运行时会动态部署和编译到Web服务器上。我的问题是,一旦代码在稍后被上传后如何编译后面的代码。它需要什么来触发它吗?不知道这是否会影响您的答案。 – nanonerd 2013-04-07 03:18:12

+0

@nanonerd根据文件修改日期的变化,重新编译将被触发。 – 2013-04-07 04:26:31

0

当您在生产服务器上的网站项目上上载新的CS文件时,它应该动态重新编译它们,以便能够获取更改。在农场和所有服务器上是否有更新的可能性?

+0

它在亚马逊(AWS)上。 hrmmm ...谢谢你的答案... – nanonerd 2013-04-07 03:40:48

+0

有时在服务器场中发生这种情况 - 一台服务器会更新其他服务器。 – dekdev 2013-04-07 04:26:54

+0

您是在云中运行IIS还是Linux/mono解决方案? – Scott 2013-04-07 13:34:12

0

我有答案。我很抱歉,因为它可能不应该被问到。哈维尔今天早上发现了正确的答案(在看到他的答案之前)。

对不起,事实证明,我的同事上传到Web服务器上的错误目录......我看不到发生了什么......这是一个漫长的故事,但我在远程工作,我自己可以直接访问Web服务器。

但是,对于任何好奇的人来说,我只是上传了代码隐藏文件(myFile.aspx.cs),而且asp.net引擎发挥了它的魔力,并且工作。所以不需要上传其他文件(如前端myFile.aspx和web.config)来强制编译。它会自动发生。

谢谢。