我有一个应用程序,我们正在慢慢尝试迁移到Azure的资源管理器模型。上周五,我将主Web应用程序发布到App Service。当我在发布后在浏览器中测试它时,它加载得很好,我可以登录等等。
然后,在周末,我发现我从错误的分支发布了。所以今天早上,我进来了,改变了VS的分支,并重新发布。这一次,当我在浏览器中测试应用程序时,它立即引发了错误。
[InvalidOperationException: An error occurred when trying to create a controller of type 'Response.Controllers.LogOnController'. Make sure that the controller has a parameterless public constructor.]
之前我见过这个错误。这是一个依赖注入错误。该应用程序使用Unity for D.I.问题是,我可以在VS的本地开发盒中直接启动这个分支,没有任何问题。
为了解决问题,我在Azure中删除了整个网络应用,并重新创建了它。然后,我将VS恢复到我星期五发布的原始分支,并从同一分支重新发布。
我得到了同样的错误。换句话说,现在星期五工作的东西会在星期一抛出这个DI错误。什么也没有变。我查看了Global.asax文件,并记录了错误提到的依赖项。我不知道发生了什么,但我认为实际的错误可能是一个红色的鲱鱼。
同样,当我在本地开发盒上运行从VS进行调试时,一切正常。同样的应用程序运行良好,发布到RackSpace上我们(即将成为旧的)服务器。
您可以在此处看到错误:
答案 0 :(得分:0)
嗯,为了它的价值,我通过ftp进入App Service解决了这个问题,并手动清除了网站内的所有文件。目录。然后我(再次)删除了应用服务,重新发布,瞧。现在再次运作。
我原以为删除App Service会做同样的事情,但我猜不会。
怪异。