尝试将现有WCF服务转换为Web角色无法在没有错误的情况下进行部署

时间:2016-11-29 07:50:37

标签: azure-cloud-services

我已将现有的WCF应用程序转换为Web角色,方法是添加“在解决方案中添加Web角色项目”。转换菜单不提供转换选项。我们的应用程序需要.NET 4.6.1

应用程序在完整模拟器上运行正常。但是部署失败有两种情况:

  • 在Serviceconfiguration中将osFamily属性设置为“5”(不需要.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。

  • 在使用.NET 4.6.1安装的Serviceconfiguration中将osFamily属性设置为“4”:
  

上传软件包所需的名为NetFx451的功能在为部署选择的OS *中不可用。

我在其他项目中成功使用了.NET安装脚本。我还在项目中添加了WebRole.CS类。

这里的问题是webrole不是WCF类型意味着缺少某些设置等吗?

1 个答案:

答案 0 :(得分:0)

我们已设法识别并解决问题。

我启用了Fusion日志记录,并立即获得了缺失的信息。 什么可以节省大量时间并指出我们正确的方向本应理解CS中的Web角色包含两个过程:WAIISHost在启动时运行RoleEntryPoint代码,而旧的W3WP用于Web应用程序本身。

WAIIShost无法读取Web.config并需要一个以项目名称命名的空Web.config文件并成功重新部署。我按照本文的说明进行操作:

Post about the issue