我已将现有的WCF应用程序转换为Web角色,方法是添加“在解决方案中添加Web角色项目”。转换菜单不提供转换选项。我们的应用程序需要.NET 4.6.1
应用程序在完整模拟器上运行正常。但是部署失败有两种情况:
19:15:16 - 角色Severa.API的实例0正在重启 详细信息:[11 / 28T17:15Z]无法加载角色入口点。 System.Reflection.ReflectionTypeLoadException:无法加载一个或多个请求的类型。检索LoaderExceptions属性以获取更多信息。 在System.Reflection.RuntimeModule.GetTypes(RuntimeModule模块) 在System.Reflection.Assembly.GetTypes() 在Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.GetRoleEntryPoint(Assembly entryPointAssembly) ---内部异常堆栈跟踪结束--- 在Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.GetRoleEntryPoint(Assembly entryPointAssembly) 在Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.CreateRoleEntryPoint(RoleType roleTypeEnum) 在Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.InitializeRoleInternal(RoleType roleTypeEnum)最后退出时间:[2016/11 / 28,17:15:06.916]。最后退出代码:0。
上传软件包所需的名为NetFx451的功能在为部署选择的OS *中不可用。
我在其他项目中成功使用了.NET安装脚本。我还在项目中添加了WebRole.CS类。
这里的问题是webrole不是WCF类型意味着缺少某些设置等吗?
答案 0 :(得分:0)
我们已设法识别并解决问题。
我启用了Fusion日志记录,并立即获得了缺失的信息。 什么可以节省大量时间并指出我们正确的方向本应理解CS中的Web角色包含两个过程:WAIISHost在启动时运行RoleEntryPoint代码,而旧的W3WP用于Web应用程序本身。
WAIIShost无法读取Web.config并需要一个以项目名称命名的空Web.config文件并成功重新部署。我按照本文的说明进行操作: