簡體   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