Asp.net mvc 无法加载文件或程序集';System.Web.Mvc';

Asp.net mvc 无法加载文件或程序集';System.Web.Mvc';,asp.net-mvc,Asp.net Mvc,我的新ASP.NET MVC Web应用程序可以在我的开发工作站上运行,但不能在我的Web服务器上运行 “/”应用程序中出现服务器错误。 配置错误 说明:处理服务此请求所需的配置文件时出错。请查看下面的特定错误详细信息,并适当修改配置文件 分析器错误消息:无法加载文件或程序集'System.Web.Mvc,Version=1.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35'或其依赖项之一。系统找不到指定的文件 源错误: Line 44:

我的新ASP.NET MVC Web应用程序可以在我的开发工作站上运行,但不能在我的Web服务器上运行


“/”应用程序中出现服务器错误。
配置错误 说明:处理服务此请求所需的配置文件时出错。请查看下面的特定错误详细信息,并适当修改配置文件

分析器错误消息:无法加载文件或程序集'System.Web.Mvc,Version=1.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35'或其依赖项之一。系统找不到指定的文件

源错误:

Line 44:         <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 45:         <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 46:         <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 47:         <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Line 48:         <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
第44行:
第45行:
第46行:
第47行:
第48行:
源文件:C:\inetpub\www.example.org\web.config行:46

程序集加载跟踪:以下信息有助于确定无法加载程序集“System.Web.Mvc,Version=1.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”的原因

WRN: Assembly binding logging is turned OFF. To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure logging. To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog]. 警告:程序集绑定日志记录已关闭。 要启用程序集绑定失败日志记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)设置为1。 注意:程序集绑定失败日志记录会带来一些性能损失。 要关闭此功能,请删除注册表值[HKLM\Software\Microsoft\Fusion!EnableLog]。
版本信息:Microsoft.NET Framework版本:2.0.50727.3053;ASP.NET版本:2.0.50727.3053


是否需要在服务器上安装AspNetMVCBeta-setup.msi?或者是否有不同的服务器安装程序


直接在web服务器上安装MVC是一种选择,因为此时程序集将安装在GAC中。您还可以bin部署程序集,这可能有助于在最终版本可用之前让服务器远离预发布程序集

菲尔·哈克(Phil Haack)几天前发表了一篇关于如何在应用程序中部署MVC的精彩文章,因此无需直接安装:


我刚刚写了一篇博客文章来解决这个问题。您可以在服务器上安装ASP.NET MVC,也可以按照以下步骤操作


编辑:(jcolebrand)我浏览了这个链接,然后遇到了与相同的问题,因此我建议您也添加以下内容:

* Microsoft.Web.Infrastructure
* System.Web.Razor
* System.Web.WebPages.Deployment
* System.Web.WebPages.Razor

我在GoDaddy共享主机上部署MVC3 Razor web应用程序时遇到了同样的问题。还有一些附加的.dll需要引用。详情如下:

基本上,除了@Haacked的帖子中列出的引用之外,您还需要添加对以下内容的引用,并将它们设置为在本地部署,如下所述

  • Microsoft.Web.Infrastructure
  • System.Web.Razor
  • System.Web.WebPages.Deployment
  • System.Web.WebPages.Razor

这篇博文可能是菲尔的翻版,但可能会有所帮助:


我遇到了与sgriffinusa相同的问题。 除了参考文献之外,菲尔的文章建议:。我补充说:

* Microsoft.Web.Infrastructure
* System.Web.Razor
* System.Web.WebPages.Deployment
* System.Web.WebPages.Razor

戈达迪的部署工作得很好。关闭自定义错误并添加引用以更正错误。这将引导您走向正确的方向。

如果您没有使用主机提供商,并且您有权访问服务器以安装。。。然后安装MVC3更新工具,这样做。。。它将为您在windows 2003 server/IIS6计算机上节省数小时的问题,我在这一页上发表了评论

除了哈克的帖子,汉斯曼也有类似的帖子


对我来说,“Copy Local=true”解决方案是不够的,因为我的网站的项目引用不包括所有缺少的DLL。正如Scott在他的文章中提到的,我还需要从我的开发盒上的以下文件夹中获取其他DLL:C:\Program Files(x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assembly。错误消息通知我缺少哪个dll(System.Web.Infrastructure、System.Web.Razor等)。我继续逐个添加每个缺少的dll,直到它工作。

在VS2010中,右键单击解决方案资源管理器中的项目并选择“添加可部署依赖项”。然后选中以下对话框中与MVC相关的复选框


这将在项目中创建一个“\u bin\u deployableAssemblies”文件夹,其中包含其他答案中提到的所有.dll文件。我相信在创建部署包时会将这些文件复制到bin文件夹。

简单修复。在VS2010中,右键单击您的MVC项目,选择“添加可部署依赖项…”,选择您想要的选项,然后单击“确定”

我们想要添加它,因为我们正在创建一个使用它的类库

对我来说,它就在这里


C:\Program Files(x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assembly

在尝试了所有操作但仍然失败后,这是我的解决方案: 我记得上次在我的VisualStudio中更新MVC版本时出错了,所以我从另一台VisualStudio(不同的计算机)运行了这个项目,然后上传了dll-s,它成功了。
也许它会对某人有所帮助…

我正在将Jenkins用于.net项目,但在MVC4引用方面遇到了问题

我最终通过使用基于注册表的.Net参考搜索引擎功能解决了我的问题,使用:

“HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework\v2.0.50727\AssemblyFoldersEx”

例如,您可以创建子键并将默认键设置为“c:\myreferenceedir”

它为我保存了MVC版本和ASP.net网页

用于向“添加引用对话框”添加引用


还要检查视图文件夹中web.config中程序集的版本,并确保其匹配。有时我会忘记在那个位置有第二个web.config。

有同样的问题,添加了他们所说的所有程序集,但仍然得到相同的错误

转向
<Reference Include="System.Web.Http">
  <HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll</HintPath>

<Reference Include="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath>
Microsoft.Web.Infrastructure
System.Web.Razor
System.Web.WebPages.Deployment
System.Web.WebPages.Razor
System.Web.Webpages
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>


                <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
                <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
                <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0"/>
                <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
                <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>


                <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="SimpleInjector" publicKeyToken="984cb50dea722e99" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.3.2.0" newVersion="3.3.2.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="HtmlAgilityPack" publicKeyToken="bd319b19eaf3b43a" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-1.4.9.5" newVersion="1.4.9.5"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>