我的网络应用程序在localhost上工作正常,但是当我在Azure上发布它时,我收到以下错误:
无法加载文件或程序集'System.IdentityModel.Tokens.Jwt'或 其中一个依赖项。定位程序集的清单定义 与装配参考不匹配。 (HRESULT的例外情况: 0x80131040)
在本地主机上工作正常。
我正在使用4.5框架,它也在web.config文件中定义。我试图在nuget管理器中重新安装它,但我得到了
包'System.IdentityModel.Tokens.Jwt.4.0.2.206221351'已存在于 project'project1'
我也在引用文件夹中找不到这个程序集。 这是我第一次遇到这种类型的问题。
你建议我做什么?
此致 三迪
答案 0 :(得分:10)
Azure Functions 主机中存在一个已知问题:https://github.com/Azure/azure-functions-host/issues/5894
当前的解决方法是将以下内容添加到您的 .csproj:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="table">
<thead>
<tr>
<th scope="col">User Name</th>
<th scope="col">Order No</th>
<th scope="col">Order Date</th>
<th scope="col">Status</th>
<th scope="col">Total Amount</th>
<th scope="col">Total Qty</th>
<th scope="col">Total Products</th>
<th scope="col">View/Edit</th>
</tr>
</thead>
<tbody>
<tr>
<td id="user-name">Alice</td>
<td id="order-no">8536</td>
<td id="order-date">13/07/2020</td>
<td id="status" >Pending</td>
<td id="total-amount" >1800</td>
<td id="total-qty" >3</td>
<td id="total-products" >3</td>
<td>
<a id="view-data" href="#" class="view-data text-success stretched-link">View/Edit</a>
</td>
</tr>
<tr>
<td id="user-name">Michael</td>
<td id="order-no">4354</td>
<td id="order-date">12/07/2020</td>
<td id="status" >Approved</td>
<td id="total-amount" >1500</td>
<td id="total-qty" >2</td>
<td id="total-products" >2</td>
<td>
<a id="view-data" href="#" class="view-data text-success stretched-link">View/Edit</a>
</td>
</tr>
</tbody>
</table>
答案 1 :(得分:4)
我已经弄清楚了。我通过nuget包管理器更新了System.IdentityModel.Tokens.Jwt引用,它再次工作。
问候!
答案 2 :(得分:0)
我不得不将dot net框架回滚到4.5.1
答案 3 :(得分:0)
我有同样的问题。我通过在“安装项目”中选择“检测到的依赖项”的“刷新依赖项”来解决此问题。我认为这是一个错误,因为System.IdentityModel.Tokens.Jwt程序集驻留在程序文件的目标文件夹中,并且具有兼容的版本控制。 如果您不使用VS,也许可以将其与自己的开发环境相关联。
答案 4 :(得分:0)
很容易解决。只需转到Web配置并找到出现错误的软件包即可。并检查web.config中提到的版本。并将其与项目中已安装的参考中的NuGet软件包进行比较。并使两者相似。
就我而言,我已经安装了3.10.10.0,并在Web配置中显示出与众不同。我将其更改为3.10.10.0。一切正常。