配置错误:<compilation debug =“true”targetframework =“4.0”> ASP.NET MVC3 </compilation>

时间:2013-03-06 07:41:45

标签: asp.net asp.net-mvc asp.net-mvc-3 razor

我正在尝试在somee.com上部署我的网站,但不断收到此错误

enter image description here

我尝试使用谷歌搜索,它说我必须将我的应用程序池更改为ASP.NET 4.0。我已经试过了,但没有运气:(

信息:

- 我的网站编码在4.0框架中    - 我正在使用.NET Framework v4.0集成
   - 我已经在Windows功能中检查了所需的东西
   - 我使用ASP.NET MVC3
   - 我已经输入了cd C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319然后aspnet_regiis -ir到cmd
  -64位OS

这是我发布网站的步骤

  1. 首先,我手动将此内容添加到我的参考中,然后将“复制本地”更改为“真实”

    Microsoft.Web.Infrastructure
    System.Web.Helpers
    System.Web.Mvc
    System.Web.Razor
    System.Web.WebPages
    System.Web.WebPages.Deployment
    System.Web.WebPages.Razor

  2. 我在我的网站配置中编辑了这个

    <configuration>
      <system.web>
        <customErrors mode="Off"/>
        <compilation debug="true" targetFramework="4.0"/>
        <authentication mode="None"/>
      </system.web>
    </configuration>

  3. 我添加了可部署的依赖项,它创建了_bin_deployableAssemblies,里面有这个:

    Microsoft.Web.Infrastructure.dll
    System.Web.Helpers.dll
    System.Web.Mvc.dll程序
    System.Web.Razor.dll
    System.Web.WebPages.dll
    System.Web.WebPages.Deployment.dll
    System.Web.WebPages.Razor.dll

  4. 然后我点击发布并进行此设置

    这就是我发布的方式,或者我必须在这里更改一些内容吗? enter image description here

  5. 我去了我的IIS管理器。我右键单击默认网站在站点下,然后选择使用此设置添加应用程序 enter image description here

  6. 这导致了这一点 enter image description here enter image description here

  7. 我去了C:/ inetpub / wwwroot并看到了这个文件
    enter image description here

  8. 然后我将其压缩为zip然后将其上传到我在somee.com的帐户中,然后检查我的网站,现在我收到上面的配置错误。

    以上是我的更新问题我发布了我的网站,并列出了我发布的步骤。我把你包括在内,所以如果我对我的网站发布如何以及可能是上述错误的原因有什么不妥,那么你可能会抱怨。提前感谢:)


    我的网站在我的机器的本地主机的iis中正常工作,只有在互联网上部署时才会出现错误。 顺便说一下,我正在关注这些网站的教程How to Deploy an ASP.NET MVC 3 App to Web Hosting with "\bin Deployment" Programming ASP.NET MVC 4 Chapter 19. Deployment Deployment ASP.NET MVC 3 project to IIS and somee

    问题:这个问题可能是什么原因:( 这是我第一次在互联网上部署网站。希望你能帮助我们..如果你需要更多信息请告诉我。

  9. 我的IIS管理器     enter image description here

    我的配置 enter image description here

    或者这可能是我问题的原因吗?

    enter image description here


    好的,这个问题已经解决了。我发现我的设置没有问题。问题出在WEBHOSTING网站的设置上。我将ASP.NET版本从2.0改为4.0但是忘记了点击更新按钮:(我感觉很糟糕,我还没有意识到这一点。我现在面对另一个错误,但是我对此问题没有任何意义。感谢你们试着帮助我:)

11 个答案:

答案 0 :(得分:16)

  

当您在web.config中具有targetFramework =“4.0”的属性但将App Pool设置为运行ASP.NET 2.0时,通常会发生这种情况。 ASP.NET 2.0完全无法识别targetFramework属性 - 因此将其更改为2.0将无法获得所需的效果。

     

与支持人员/您的管理员联系,并将AppPool切换为4.0。

     

您也可以完全删除该属性,但是如果您的网站使用4.0 Framework编码,那么我确定其他内容也会导致错误。

Unrecognized attribute 'targetFramework'. Note that attribute names are case-sensitive

答案 1 :(得分:8)

我现在能够找到错误背后的原因。它位于不在我的应用程序池上的webhosting站点设置或者是什么。我将asp.net版本从2.0更改为4.0但我忘记点击更新按钮。我觉得很尴尬。 :(我一直在努力修复此错误并且只在网站主机网站设置上找到它.GgrrRR ..截至目前我正面临新的错误但与此问题无关。无论如何,谢谢你们你努力帮助我。:)

答案 2 :(得分:6)

尝试此操作,而不是选择websete的应用程序池为 DefaultAppPool ,而选择 ASP.NET v4.0

在IIS中选择您的网站=&gt;基本设置=&gt;应用程序池=&gt;选择 ASP.NET v4.0

你会很高兴。希望它有所帮助:)

答案 3 :(得分:1)

同时在下面的路径

上尝试aspnet_regiis -u然后aspnet_regiis -i
C:\Windows\Microsoft.NET\Framework\v4.0.30319 

现在重启IIS并检查

希望这会有所帮助!

答案 4 :(得分:0)

您是否尝试过使用 aspnet_regiis 工具为IIS注册.Net 4.0?您可以在msdn

查看更多信息

答案 5 :(得分:0)

您可能正在使用32位版本,因此您应该尝试从Framework(而不是Framework64)文件夹中的命令行。

IE你试过吗? C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319而不是64版本?如果您引用32位libs,则可以强制使用32位版本(如果我记得的话还有其他一些原因)

您的网站是否是IIS中其他网站的子网?

有关详细信息(因为它适用于在.NET上运行的各种类型的应用程序),请参阅Scott的帖子:

32-bit and 64-bit confusion around x86 and x64 and the .NET Framework and CLR

答案 6 :(得分:0)

确保您将Web应用程序构建为“任何CPU”。右键单击您的Web项目 - &gt;属性 - &gt;构建 - &gt;并寻找“平台目标”。选择“任何CPU”或玩它。

希望这有帮助!

答案 7 :(得分:0)

IIS网站下的每个Web应用程序都可以使用不同的应用程序池。

验证分配给您的应用的应用池(不仅仅是您的图片的根网站)与.NET 4.0兼容:

  1. 展开默认网站
  2. 右键单击ProjectPALS,选择“管理应用程序”,然后选择“高级...”
  3. 观察您的应用在网站
  4. 下运行的“应用池”
  5. 如有需要,请转到另一个应用程序池

答案 8 :(得分:0)

你是如何运行该应用程序的?您是刚刚访问该网站还是在Visual Studio中构建和运行?如果您正在构建和运行,您可能希望告诉它使用本地IIS Web服务器。这将确保它使用您设置的应用程序池以使用v4.0 / integrated运行。

我猜测它在运行时正在使用Visual Studio Development Server。该服务器可能正在尝试使用2.0框架运行。这会导致您的错误被抛出。

编辑:要注意,我通常只是构建我的网站应用程序,然后在我想调试时附加到处理w3wp。我不使用发布工具。当然,这意味着我的本地工作目录位于Web根目录中。

答案 9 :(得分:0)

我的问题就是这样解决的:

您的用户名可能受到限制,您必须授予用户完全访问权限。

  1. 右键单击项目,然后选择属性
  2. 点击“标签安全性”
  3. 点击“编辑”按钮
  4. 找到的当前用户和用户允许的完全控制权限

答案 10 :(得分:-1)

如果您的应用程序是32位,并且您想要部署在64位计算机中,则需要在应用程序池中将“启用32位应用程序”属性设置为“True” - 高级设置。