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

本文关键字:dll WebMatrix 我的 添加 bin 是什么 Data WebData | 更新日期: 2023-09-27 18:32:23

我有一个我一直在开发的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" />-->

这些文件保留了一段时间,但现在它们又回来了,再次导致问题。

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

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

它们

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

有关详细信息,请参阅 Microsoft ASP.NET 网页 2 数据 Nuget 包的用途是什么?

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

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

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

这导致以下 [dependentAssembly] 被添加到 Web.config [配置] -> [运行时] -> [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 就可以缓解网站的此问题。