Просьба не трогать теги, которые я поставил. Я не знаю в какой ветке найдётся тот, у кого возникала эта проблема и все теги правильно выставлены. В вопросе затрагивается всё, что указано в тегах. Например, вдруг в IIS нужно что-то настроить или в ASP.NET Core, что-то связанное с IIS.
Когда запускаю приложение из под дебага или просто дабл кликом на эксешнике, то PowerShell нормально работает, выполняются команды в нём и т.д. После того как публикую приложение, то PowerShell как-будто зависает. Отправляю запрос и нет никакой реакции. Postman очень долго ждёт ответ. Как найти причину проблемы, если нет даже ошибки? Возможно, где-то есть полезные логи? Кто-то сталкивался с подобным?
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UserSecretsId>***</UserSecretsId>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
<LangVersion>9</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Extensions.Hosting.AsyncInitialization" Version="1.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.15" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="5.0.6" />
<PackageReference Include="Microsoft.Management.Infrastructure" Version="2.0.0" />
<PackageReference Include="Microsoft.PowerShell.SDK" Version="7.0.6" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="Serilog.AspNetCore" Version="3.4.0" />
</ItemGroup>
</Project>
public class Startup
{
public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
// ...
// Много всего, что не относится к вопросу
// ...
// OutOfProcess
services.Configure<IISOptions>(options =>
{
options.ForwardClientCertificate = false;
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ...
// Много всего, что не относится к вопросу
// ...
}
}
Properties/PublishProfiles/
FolderProfile.pubxml
RuntimeIdentifier
win7-x64 используется, так как возникала
проблема
.
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DeleteExistingFiles>False</DeleteExistingFiles>
<ExcludeApp_Data>False</ExcludeApp_Data>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>x64</LastUsedPlatform>
<PublishProvider>FileSystem</PublishProvider>
<PublishUrl>bin\Release\netcoreapp3.1\publish\</PublishUrl>
<WebPublishMethod>FileSystem</WebPublishMethod>
<SiteUrlToLaunchAfterPublish />
<TargetFramework>netcoreapp3.1</TargetFramework>
<RuntimeIdentifier>win7-x64</RuntimeIdentifier>
<PublishSingleFile>False</PublishSingleFile>
<ProjectGuid>***</ProjectGuid>
<SelfContained>false</SelfContained>
<PublishReadyToRun>False</PublishReadyToRun>
</PropertyGroup>
</Project>
try
{
using var powerShell = PowerShell.Create();
// Логировал и знаю, что зависает после верхней строки.
await powerShell
.AddCommand("Start-Process")
.AddArgument($"someclient://run-service/session={session}")
.InvokeAsync();
}
catch (Exception ex)
{
_logger.Error(SOME_TEMPLATE, ex);
throw;
}
Создал отдельное приложение и оно выдаёт уже ошибку:
2021-05-31 14:00:18.774 +03:00 [DBG] OnPowerShell_InvocationStateChanged. State: Running, Reason (Exception): -
2021-05-31 14:00:19.967 +03:00 [DBG] OnPowerShell_InvocationStateChanged. State: Failed, Reason (Exception): System.Management.Automation.CmdletInvocationException: This command cannot be run due to the error: Отказано в доступе..
---> System.InvalidOperationException: This command cannot be run due to the error: Отказано в доступе..
at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord)
--- End of inner exception stack trace ---
at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input)
at System.Management.Automation.Runspaces.LocalPipeline.InvokeHelper()
at System.Management.Automation.Runspaces.LocalPipeline.InvokeThreadProc()