Azure Web角色回收,无法加载入口点" ExecuteAsync()"在ChallengeResult.cs中

时间:2018-03-14 23:05:50

标签: azure azure-web-roles

所以,这就像永远一样(并且在模拟器中继续正常工作)。

当我在Azure中启动我的经典云服务时,我得到以下错误。 ExecuteAsync()Results/ChallengeResult.cs中的网络角色(我直到现在才注意到的文件夹)。

 Role entrypoint could not be created:
 System.TypeLoadException: Unable to load the role entry point due to the following exceptions:
-- System.TypeLoadException: Method 'ExecuteAsync' in type 
'MyWebRole.Results.ChallengeResult' from assembly 'MyWebRole, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.

当我看时,ChallengeResult.cs确实有ExecuteAsync()的实现。这是默认实现,其签名如下:

    public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)

我在RDP中使用Azure工具来运行windbg;它没有提供任何线索。我怀疑某个地方有一个DLL,它期待一个不同的签名。

但是哪一个?谁叫这个?

奇怪的是,即使角色正在回收,该服务仍然有效。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。由于某种原因,绑定重定向对System.Net.Http生效,从而导致了问题。

要解决此问题,我复制了我的web.config,将其重命名为MyProjectName.dll.config,并将Copy to Output Directory设置为Copy always。 您可以使用csproj中的BeforeBuild自动执行此操作。您可以检查WebRole entry point and config file以获得更多信息。