我刚刚开始为 Azure 开发。我已经使用 Asp.net 角色创建了一个 Azure 项目,但是当我尝试在不进行任何更改的情况下对其进行调试时,它会出现以下错误:“windows azure web 角色入口点主机已停止工作”。
2 回答
检查您的 %UserProfile%\AppData\Local\Temp 目录。您应该在那里看到几个文件,包括 IISConfigurator.log 和 Visual Studio Web Debugger.log。看看这些文件告诉你什么。
更新:后来的 SDK 将它们放在 %UserProfile%\AppData\Local\dftmp\IISConfiguratorLogs\
检查您的 %UserProfile%\AppData\Local\Temp 目录。您应该在那里看到几个文件,包括 IISConfigurator.log
对于我在SDK v1.6上的路径是%UserProfile%\AppData\Local\dftmp\IISConfiguratorLogs\IISConfigurator.log(小心最新的 SDK,看起来他们已经更改了路径)问题出在“添加访问用户 IUSR 和 NT AUTHORITY\NETWORK SERVICE 到路径 %MyPathOnTheBuildMachine% ':
IISConfigurator Information: 0 : [00004816:00000004, 2011/12/08 13:01:51.971] Adding access to users IUSR and NT AUTHORITY\NETWORK SERVICE to path %MyPathOnTheBuildMachine%
IISConfigurator Information: 0 : [00004816:00000004, 2011/12/08 13:01:51.972] Caught exception
IISConfigurator Information: 0 : [00004816:00000004, 2011/12/08 13:01:51.974] Exception:System.InvalidOperationException: Method failed with unexpected error code 3.
at System.Security.AccessControl.NativeObjectSecurity.CreateInternal(ResourceType resourceType, Boolean isContainer, String name, SafeHandle handle, AccessControlSections includeSections, Boolean createByName, ExceptionFromErrorCode exceptionFromErrorCode, Object exceptionContext)
at System.Security.AccessControl.DirectorySecurity..ctor(String name, AccessControlSections includeSections)
at System.IO.DirectoryInfo.GetAccessControl(AccessControlSections includeSections)
at Microsoft.WindowsAzure.ServiceRuntime.IISConfigurator.FileManager.AddAllowAceIterative(DirectoryInfo dir, FileSystemRights rights, IdentityReference[] accounts)
at Microsoft.WindowsAzure.ServiceRuntime.IISConfigurator.FileManager.AddAllowAce(DirectoryInfo dir, FileSystemRights rights, Boolean inherit, IdentityReference[] accounts)
at Microsoft.WindowsAzure.ServiceRuntime.IISConfigurator.Security.AddAppPoolSidAceToVdir(String appPoolName, String sitePath, String appPoolSid)
at Microsoft.WindowsAzure.ServiceRuntime.IISConfigurator.IISConfigurator.Deploy(String roleId, WebAppModel appModel, String roleRootDirectory, String sitesDestinationDirectory, String diagnosticsRootFolder, String roleGuid, Dictionary`2 globalEnvironment)
结果我在一台机器上打包(cspack)我的解决方案,但试图在另一台机器上运行它(csrun)。因此,它试图授予存在于一台机器上但不存在于另一台机器上的目录的权限。
很多人确定您在同一台机器上 cspack 和 csrun 您的代码(例如,当您进行自动构建和部署时可能不是这种情况)。