【发布时间】:2018-04-08 05:08:20
【问题描述】:
我在 .NET Core 2.0 上遇到了 OpenIddict 的一个可怕问题。 我在工作中使用带有 Visual Studio 2017 的 Windows 10 PC,在家庭办公时使用 Mac。在 Mac 上,我使用 Visual Studio for Mac。
所以有时我会继续在我的 Mac 上工作,将更改推送到 Git 存储库并在 Windows PC 上签出。
没有对处理 OpenIddict 的代码进行任何更改当代码通过 AuthController 方法返回访问令牌时,我突然遇到问题仅在 Windows 上这个签名:
public async System.Threading.Tasks.Task<IActionResult> GetTokenAsync(OpenIdConnectRequest request)
返回命令是
return SignIn(ticket.Principal, ticket.Properties, ticket.AuthenticationScheme);
我可以调试到 GetTokenAsync() 结束。然后系统遇到以下情况,进入Application Break Mode。
“System.ExecutionEngineException”类型的未处理异常 发生在 AspNet.Security.OpenIdConnect.Extensions.dll 中
该项目在我的 Mac 和 Windows 上都能正常编译。当我从 Visual Studio 2017 for Windows 部署到 Azure 时,软件也会在 Azure 上崩溃。当我从我的 Mac 部署到 Azure 时,该软件可以运行。
结论:一定是Visual Studio或NuGet包有问题?
这些是我使用的包参考,它们几乎是最新的:
<PackageReference Include="AspNet.Security.OAuth.Introspection" Version="2.0.0-rc1-final" />
<PackageReference Include="AutoMapper" Version="6.1.1" />
<PackageReference Include="Jwt.Token.Authorization.Server" Version="1.0.3" />
<PackageReference Include="Mailjet.Api" Version="1.0.1" />
<PackageReference Include="Microsoft.AspNetCore" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Formatters.Xml" Version="2.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.0.0" />
<PackageReference Include="MySql.Data" Version="8.0.9-dmr" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
<PackageReference Include="AspNet.Security.OAuth.Validation" Version="2.0.0-rc1-final" />
<PackageReference Include="OpenIddict" Version="2.0.0-rc1-final" />
<PackageReference Include="OpenIddict.EntityFrameworkCore" Version="2.0.0-rc1-final" />
<PackageReference Include="OpenIddict.Mvc" Version="2.0.0-rc1-final" />
<PackageReference Include="System.Threading.Timer" Version="4.3.0" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="2.0.0" />
<PackageReference Include="WindowsAzure.Storage" Version="8.5.0" />
<PackageReference Include="HtmlAgilityPack" Version="1.6.2" />
有人知道如何让我的 Windows 环境恢复工作吗?我什至回顾了我的 Git 历史记录,以至于我没有从我的 Mac 进行最后一次结帐,但问题仍然存在。所以我很确定这是 .net core、NuGet 或 Visual Studio 的问题。
提前致谢!
【问题讨论】:
-
这是在推送到我们使用的 MyGet.org 提要的预发布包中引入的重大更改的表现(您可能会参考)。按照stackoverflow.com/a/46715074/542757 的指示删除软件包,它应该可以工作。
-
谢谢。刚刚自己找到了解决方案。如果您愿意,请将您的评论发布为解决方案答案,我会将其标记为解决方案:-)
标签: windows macos visual-studio .net-core openiddict