2008-09-15 104 views
0

我在发布我的网站时遇到一个奇怪的问题。我继承了这个项目,并且在我到达之前就开始了这个问题,所以我不知道是什么情况导致了问题的产生。发布网站某些页面失败

基本上,网站项目下的3个文件夹无法正确发布。将预编译的Web传输到主机时,必须将这三个文件夹从Visual Studio项目手动复制到主机(即它们不再是发布的版本)以使其工作。

如果发布操作的结果被留下,在该文件夹会导致以下错误的任何页面:

Server Error in '/' Application. Unable to cast object of type 'System.Web.Compilation.BuildResultNoCompilePage' to type 'System.Web.Compilation.BuildResultCompiledType'. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidCastException: Unable to cast object of type 'System.Web.Compilation.BuildResultNoCompilePage' to type 'System.Web.Compilation.BuildResultCompiledType'.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[InvalidCastException: Unable to cast object of type 'System.Web.Compilation.BuildResultNoCompilePage' to type 'System.Web.Compilation.BuildResultCompiledType'.] System.Web.UI.PageParser.GetCompiledPageInstance(VirtualPath virtualPath, String inputFile, HttpContext context) +254
System.Web.UI.PageParser.GetCompiledPageInstance(String virtualPath, String inputFile, HttpContext context) +171
URLRewrite.URLRewriter.ProcessRequest(HttpContext context) +2183
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +405 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +65

Version Information: Microsoft .NET Framework Version:2.0.50727.832; ASP.NET Version:2.0.50727.832

没有人有任何想法,这些网页无法正常出版的可能原因可能是什么?我能看到的任何事情都可能表明问题的根源?

此外: 这是一个完全干净的每一次构建,所以旧的bin文件应该不会有问题。我还检查了bin文件夹中的项目的日期戳记,并且它们是最新的。

第二加法: 该项目最初是作为网站,而不是一个Web应用程序创建的。抱歉,模棱两可。

回答

0

我会尝试清理bin \文件夹。 无论如何,我们的商店完全放弃了网站,转而使用网页形式的应用程序,这可以说是好得多。

编辑:Migration HOW TO here

+0

完成 - 不幸的是它没有任何好处。另外,当项目开始时,我并不在身边,所以我没有对项目类型进行任何控制。 – 2008-09-17 12:32:00

+0

您可以使用ScottGu的博客上的工具轻松地将网站转换为Web应用程序(或者也可以在VS2005 SP1中?)。说真的,这就是我通常解决这些问题的方法! – Sklivvz 2008-09-17 21:37:34

+0

我可能会单独尝试 - 但是,我们距离上线一周,我不希望在此阶段引入任何其他未解决的问题。 – 2008-09-18 16:13:15

1

你可能会考虑尝试微软的Web Deployment Projects。本质上,它们让你对MSBuild有更多的控制权,但它可能有助于解决你的部署/预编译问题。

我们是否推断您正在使用网站项目类型(和而不是 Web应用程序)?

1

我猜测,因为当你发布时,它正在编译你的网站项目,并且它在不同文件夹或子文件夹中的某个地方打了一个重复的类名。确保你检查你的继承标签和类名,这样你就不会调用2类同样的事情。这很好,当编码和调试发生在不同的文件夹时不会出错,但是当你去发布/部署它时会出错。 ...希望是有道理的。

0

我之前有一个类似的问题,发布会说它是成功的,但发布文件夹保持空白。

除了看Web Deployment Projects你也应该详细程度设置为诊断(工具=>选项=>项目和解决方案=>生成和运行=> MSBuild项目生成输出的详细程度)

这一点,在我的情况了显示有助于我解决问题的有意义的编译器错误的效果。

然后,您也可以在shell提示符下运行aspnet_compiler-errorstack指令来显示其他错误。

0

最好的答案是这个请打开你的网页。配置文件,并添加空两设置添加在编译标记

<compilation targetFramework="4.0" debug="false" batch="false"> 

保持coidng,而且我尝试下面的事情时,我得到了我的应用程序相同的错误,我试图在服务器

1至主机。单击开始,单击运行,键入iisreset/stop,然后单击确定。

2.打开C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files目录。

3.删除所有文件和您在步骤所在的目录中所有文件夹

4.Click开始,单击运行,键入iisreset /启动,然后单击确定。

5.再次构建并尝试访问您的网站。

相关问题