繁体   English   中英

是什么导致 WebMatrix.Data.dll 和 WebMatrix.WebData.dll 添加到我的 bin 目录中

[英]What causing WebMatrix.Data.dll and WebMatrix.WebData.dll to be added to my bin directory

我有一个我一直在开发的 MVC ASP.Net 应用程序。 当我尝试加载被转移到login.aspx?ReturnUrl=ENCODED_REQUESTED_PATH_HERE的页面时,它只有大约一半的时间工作正常。 在互联网上进行了一些搜索后,这非常令人沮丧,我发现这是由

WebMatrix.Data.dll
WebMatrix.WebData.dll

当我删除这些时,问题确实消失了,在我的 IISExpress applicationhost.config 中注释掉这两行之后

<!--<add name="WebMatrixSupportModule" image="%IIS_BIN%\webmatrixsup.dll" />-->
<!--<add name="WebMatrixSupportModule" lockItem="true" />-->

这些文件离开了一段时间,但现在它们又回来了,并再次引起了问题。

是什么把它们放在那里,项目中没有提到它们。

它们是由 ASP.NET MVC 4 项目模板附带的 NuGet 包添加的。

您可以在 Microsoft ASP.NET Web Pages 2 Data Nuget 包的用途是什么?

这些程序集提供与您的身份验证冲突的简单成员身份提供程序。 您是否使用表单身份验证并正确实施了授权属性? 如果您的控制器正确标记了授权属性,那么您将不会有任何问题。 这些 dll 的存在不是问题。 您的控制器未获得财产授权。

对于突然开始在他们的 bin 中获取 WebMatrix dll (WebMatrix.Data.dll / WebMatrix.WebData.dll) 的任何人:我删除它们的解决方案如下:

  1. 安装 nuget 包:
    • Microsoft.AspNet.WebPages.Data
    • Microsoft.AspNet.WebPages.WebData
  2. 然后卸载它们。

这导致以下 [dependentAssembly] 被添加到 Web.config [configuration] -> [runtime] -> [assemblyBinding]

  <dependentAssembly>
    <assemblyIdentity name="WebMatrix.WebData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
  </dependentAssembly>

出于某种原因,尽管标记为“依赖程序集”,但它会做相反的事情并阻止 WebMatrix dll 出现。

我个人需要摆脱 WebMatrix dll 的原因是,当部署到服务器时,它会要求 Razor ver.2,当我包含 Razor ver.3 并在积极使用时,抛出异常并破坏整个网站。 只是,简单地,从服务器的 bin 文件夹中删除 WebMatrix dll 可以缓解网站的这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM