Debugging 从服务结构中单独运行Web应用程序
我有服务结构和web服务。如果我从VisualStudio本地运行服务结构,我可以调试我的服务,这非常方便 但是,将代码更改部署到本地结构需要花费大量时间。 我确信应该有一个选项来单独启动我的服务。 似乎我需要更新我的方法“Main”,以便在dev环境中以不同的方式启动服务Debugging 从服务结构中单独运行Web应用程序,debugging,azure-service-fabric,visual-studio-debugging,Debugging,Azure Service Fabric,Visual Studio Debugging,我有服务结构和web服务。如果我从VisualStudio本地运行服务结构,我可以调试我的服务,这非常方便 但是,将代码更改部署到本地结构需要花费大量时间。 我确信应该有一个选项来单独启动我的服务。 似乎我需要更新我的方法“Main”,以便在dev环境中以不同的方式启动服务 您知道应该更改什么吗?您的服务是否使用了任何服务结构功能(远程处理?自定义侦听器?等) 如果是,则在没有service Fabric runtime的情况下无法运行服务 如果您的服务是通过WebHost配置的ASP.NET核
您知道应该更改什么吗?您的服务是否使用了任何服务结构功能(远程处理?自定义侦听器?等) 如果是,则在没有service Fabric runtime的情况下无法运行服务 如果您的服务是通过
WebHost
配置的ASP.NET核心服务,则可以尝试以下方法:
WebHost
的代码分离到单独的静态方法中。使用此方法初始化WebHost
内部服务结构服务Program.Main
中检查环境变量(这可以使用方法完成)
此变量由服务结构运行时定义,因此,如果定义了此变量,则代码将在服务结构内运行
如果定义了Fabric\u ApplicationName
变量,则只需继续使用服务结构服务初始化代码,否则使用先前定义的静态方法初始化WebHost的实例
,并直接从程序.Main运行它
希望能有所帮助。奥列格·卡拉西克的回答帮助形成了解决方案。 我还没有使用任何特定于Service Fabric的功能,所以它成功了 我需要修改的唯一代码是类程序:
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.ServiceFabric.Services.Runtime;
using System;
using System.Diagnostics;
using System.Threading;
namespace MyNameSpace
{
internal static class Program
{
private static void Main()
{
if (string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("Fabric_ApplicationName")))
{
StartInIISExpress();
}
else
{
StartInServiceFabric();
}
}
private static void StartInIISExpress()
{
WebHost.CreateDefaultBuilder()
.UseStartup<Startup>()
.Build().Run();
}
private static void StartInServiceFabric()
{
< original code of the method Main >
}
}
}
使用Microsoft.AspNetCore;
使用Microsoft.AspNetCore.Hosting;
使用Microsoft.ServiceFabric.Services.Runtime;
使用制度;
使用系统诊断;
使用系统线程;
名称空间MyNameSpace
{
内部静态类程序
{
私有静态void Main()
{
if(string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable(“Fabric_ApplicationName”))
{
startinisexpress();
}
其他的
{
StartInServiceFabric();
}
}
专用静态无效StartIniSexpress()
{
WebHost.CreateDefaultBuilder()
.UseStartup()
.Build().Run();
}
私有静态void StartInServiceFabric()
{
}
}
}
Hi friend,您的意思是要在visual studio中调试web服务而不使用service Fabric吗?如果是的话,我可以帮忙。如果我有任何误解,请随时纠正我:-)感谢分享解决方案,您可以将其标记为对simlar问题的成员有益的答案。