2014-06-11 34 views
3

是的我知道,这个问题已被问到已经加载过多次。文件'blahblah.aspx'没有被预编译,也不能被请求

但这不完全相同。其实我认为错误信息是准确的!

正常情况下,当您查看已发布的ASPX文件时,您只会看到“这是由预编译工具生成的标记文件,不应删除!”。

就我而言,在构建和发布之后,当我查看发布的页面时,我可以看到完整的源代码。

我使用的是VS2012的新安装副本,所以显然有些不太正确。

有什么建议吗?

谢谢:)

+0

你能告诉我们你是如何发布你的网站? – TechGirl

+0

通常的方法 - 打开Visual Studio,右键单击项目,“发布”,选择配置文件等。 – CompanyDroneFromSector7G

+0

您在此文件中添加的任何引用,其ddl可能未添加,或者可能是您的webconfig中的某些内容缺失。只是干扰想法 – TechGirl

回答

5

通常,当您查看发布的ASPX文件,你只看到“这是预编译工具生成的标记文件,不应被删除!”。

那么,不是真的“正常” - 你必须明确地设置

常用方法 - 打开Visual Studio中,右键单击项目,“发布”,选择配置文件

检查配置文件设置,或者在必要时创建一个新的配置文件,并(重新)设置什么你要。设置在这里你可以预编译,使“更新”或不

屏幕截图(完全编译的,你看你上面提到的注意事项)等

如下图所示,“正常” (默认)设置是“可更新”。取消选中==一切都被编译 - 即使(CS/VB)的HTML,ASPX,等(没有源在查看文件)

publish profile settings

H个...

+0

现货!尽管如此,我仍然得到错误,所以它可能是一个参考问题。将工作在... – CompanyDroneFromSector7G

8

我一直在努力解决这个问题问题在过去几天。至少在我的情况下,错误信息完全是误导性的,与预编译的网站无关。那里有很多文章或帖子给出了许多不同的答案,这只会增加混淆。我个人认为这个错误主要是由于缺少引用或不正确的版本。为了尽可能快地解决问题,您必须排除此问题,或者修复缺失/错误的引用。

为此,您需要使用名为“Assembly Binding Log Viewer”的工具。这个工具会告诉你哪些引用丢失或有错误的版本。如果有缺失/不匹配的参考,请继续并修复它;否则你需要做其他的魔术,比如检查32位的App Pool或者权限。

步骤:

  1. 在你的服务器上创建以下文件夹

    C:\ fuslog C:\ fuslog \日志

  2. 复制大会绑定日志查看到您的服务器位于C :\ fuslog:

    你可以在这样的位置中找到程序

    C:\ Program Files文件(x86)的\微软的SDK \的Windows \ v7.0A \ BIN \ fuslogvw.exe

    你可能需要看看 “程序文件”,而不是 “程序文件(x86)” 或可考虑不同vesions而不是“v7.0A”

  3. 在服务器上执行fuslogvw.exe

  4. 点击“设置...”

  5. 确保“登录失败绑定到磁盘”时检查

  6. 选中启用自定义日志路径,并在框中输入以下内容:C:\ fuslog \日志

  7. 点击OK

  8. 回收/重置您的应用程序池以执行新的结合

  9. 点击刷新。现在您可以在此处看到失败的绑定

  10. 找到确切绑定的更好方法是转到c:\ fuslog \ logs \ Default。在这里你可以找到确切的绑定失败。有些是无关紧要的,你需要通过反复试验找到关键问题。我的是这样的失败:

    System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35 
    

我通过我的网站添加以下项解决了该问题的web.config:

<configuration> 
    ... 
    <runtime> 
     ... 
     <!-- Added this entry to fix the issue --> 
     <dependentAssembly> 
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
      <bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.0" /> 
     </dependentAssembly> 
     ... 
    </runtime> 
    ... 
</configuration> 

我希望这可以帮助别人迅速解决问题。

+0

我无法完成这些步骤,因为1.将fuslogvw.exe复制到您提到的文件夹时,它无法运行(无错误),以及2.当我从'bin'运行它时,文件夹下,设置下的所有选项都会变灰。你知道这可能是为什么吗? – Bassie

+0

如果选项灰显,您需要以管理员身份运行 – cwap

2

最后,我发现了这个问题。如果您使用像我这样的MVC框架,请更新您的MVC版本。在我的情况下,我将MVC 4.0.0.0更改为4.0.0.1,并将所有项目引用的“本地副本”属性都设置为“True”。之后,我的问题解决了。请检查所有配置文件(4.0.0.0-> 4.0.0.1)中的MVC版本

并注意asp编译器警告消息。

+0

如果遇到同样的问题,我编译的CSHTML文件将无法加载,我必须更改''to'''(介意-4.0.0.1)。 – Iztoksson

相关问题