1. 程式人生 > >關於用微軟實時推送SignalR的相關bug

關於用微軟實時推送SignalR的相關bug

常見錯誤一

未能載入檔案或程式集“Microsoft.Owin”或它的某一個依賴項。找到的程式集清單定義與程式集引用不匹配。 (異常來自 HRESULT:0x80131040)

具體錯誤如下圖:

解決方案:

1、常看bin目錄下有沒有對應的檔案:例如Microsoft.Owin.dll檔案是否存在;

2、如果檔案存在,再檢視其相關的引用檔案在不在;例如本錯誤的相關引用檔案是Owin.dll;

3、如果引用檔案都存在還報這個錯誤;檢視一下web.config檔案中是否將dll的資訊配置錯誤。

本錯誤對應web.config配置的是

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.0.1.0" newVersion="2.0.1.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

但是檢視Microsoft.Owin.dll檔案發現其Microsoft.Owin, Version 2.0.1.0;所以版本號資訊是錯誤。

將web.config對應的dll資訊更改正確即可。

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.0.1.0" newVersion="2.0.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.0.1.0" newVersion="2.0.1.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

常見問題二

待更新中……