所以,这就像永远一样(并且在模拟器中继续正常工作)。
当我在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,它期待一个不同的签名。
但是哪一个?谁叫这个?
奇怪的是,即使角色正在回收,该服务仍然有效。
答案 0 :(得分:0)
我遇到了同样的问题。由于某种原因,绑定重定向对System.Net.Http
生效,从而导致了问题。
要解决此问题,我复制了我的web.config,将其重命名为MyProjectName.dll.config,并将Copy to Output Directory
设置为Copy always
。
您可以使用csproj中的BeforeBuild
自动执行此操作。您可以检查WebRole entry point and config file以获得更多信息。