我正在构建一个启用了SSL的dotnet核心APIm。当我尝试运行时,我收到以下错误:
尝试确定托管应用程序的dotnet.exe的进程ID时发生错误。发生了一个或多个错误。
我已经看过无数页面(StackOverflow和其他人)谈论这个问题,我理解它可能发生的主要原因。但是......我几乎肯定他们都不是我的问题。
首先,当我关闭SSL并尝试在没有错误的情况下运行时。其次,当我经历一个"修复"或重新安装不同的dotnet核心/ iis表达它的工作原理。工作一段时间后,它将停止(我想可能在Visual Studio关闭时)。
我一直无法找到任何关于何时开始工作的模式,但我相信它会在Visual Studio 2015关闭时停止。
以下是我做的一些事情,可能会或可能不会让它暂时起作用:
请有人可能会给我一些建议,或者帮助找出具体问题的步骤吗?
或者在我们升级到Visual Studio 2017之前可以使用某种方法吗?
其他信息:
我有时会使用VPN
project.json
{
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.1.0"
},
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-*",
"Microsoft.Extensions.Logging.Console": "1.1.0",
"Microsoft.AspNetCore.Diagnostics": "1.1.0",
"Microsoft.AspNetCore.Mvc": "1.1.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
"Microsoft.EntityFrameworkCore": "1.1.0",
"Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
"Microsoft.Extensions.Configuration.Json": "1.1.0",
"AutoMapper": "5.2.0",
"Swashbuckle": "6.0.0-beta902",
"Microsoft.Extensions.Logging.Debug": "1.1.0",
"Microsoft.IdentityModel.Tokens": "5.1.2",
"Microsoft.AspNetCore.Authentication.JwtBearer": "1.1.0",
"OpenIddict": "1.0.0-*",
"OpenIddict.EntityFrameworkCore": "1.0.0-*",
"OpenIddict.Mvc": "1.0.0-*",
"Microsoft.AspNetCore.Authentication.OpenIdConnect": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel.Https": "1.0.1",
"AspNet.Security.OAuth.Validation": "1.0.0-*"
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-*"
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true,
"xmlDoc": true
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},
"publishOptions": {
"include": [
"wwwroot",
"web.config",
"appsettings.json",
"appsettings.production.json",
"appsettings.development.json",
"appsettings.labs.json",
"Resources\\testCert.pfx",
"Resources\\SiteWildcard.pfx"
]
},
"scripts": {
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}

{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "https://localhost:44345/",
"sslPort": 44345
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"App.Api": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}

答案 0 :(得分:1)
我想我已经弄清楚它是什么......它只在VPN处于活动状态时才会发生。如果我断开VPN它再次工作。我不知道在VPN处于活动状态时如何使其工作的解决方案,但我现在对此工作非常满意。
这可能会对将来陷入同一位置的其他人有用。对我来说,它有时工作的混乱,有时不工作,因为我必须激活和停用VPN才能连接某些东西。
答案 1 :(得分:1)
以上链接对我有用。
您需要从Windows搜索栏打开Windows PowerShell ISE并输入以下命令:
ipmo PKI
$name = [GUID]::NewGuid()
$cerFile = "$env:TEMP\$name.cer"
$certs = Get-ChildItem Cert:\LocalMachine\My -DnsName localhost -SSLServerAuthentication | ? {($_.FriendlyName -eq 'IIS Express Development Certificate') -and ($_.SignatureAlgorithm.FriendlyName -ieq 'sha256RSA') -and ($_.EnhancedKeyUsageList.Count -eq 1)}
if ($certs.Count -eq 0)
{
Write-Error 'Cannot find any SHA256 certificate generated by IIS Express. Please make sure that the latest version of IIS Express is installed.'
}
else
{
foreach ($cert in $certs)
{
Export-Certificate -Cert $cert.PSPath -FilePath $cerFile -Type CERT | Out-Null
Import-Certificate -FilePath $cerFile -CertStoreLocation Cert:\CurrentUser\Root | Out-Null
Remove-Item $cerFile -Force
}
Write-Host 'Successfully installed the certificate to Trusted Root Certification Authorities of the current user.'
}
如果上述代码不起作用,只需转到链接并复制即可。 然后,您将收到一条警告消息,单击“是”。 接下来使用Windows搜索来搜索mmc以打开Microsoft管理控制台。
然后您可以从网站上关注其余部分。希望它有所帮助