Wes*_*ger 20 .net iis publish webdeploy .net-5
我正在尝试向 IIS 发布新的 .net API。因为这需要在生产服务器上完成,所以我正在尝试使用示例 API 项目和测试服务器来弄清楚如何首先进行此操作。
我用这个作为参考。
该项目使用.net 5.0 我安装了 windows .net core 托管捆绑包 v5.0.6 我安装了 windows .net core 运行时 v5.0.6
我按照所有必要的步骤在 IIS 中创建了一个应用程序池和网站。
示例项目只是您可以获得的最基本的 .net core Web API 项目,只需单击 Web API 并进行任何更改,这只有 1 个端点和一个 swagger 页面。
当我将其发布到测试服务器并尝试在浏览器中查看 swagger 页面时,我得到了 404。
如果我使用 dotnet "Projectname".exe 运行项目 exe,我会收到以下错误消息:
D:\ThirdPartyAPI>dotnet Test.exe
Error:
An assembly specified in the application dependencies manifest (Test.deps.json) has already been found but with a different file extension:
package: 'Test', version: '1.0.0'
path: 'Test.dll'
previously found assembly: 'D:\ThirdPartyAPI\Test.exe'
Run Code Online (Sandbox Code Playgroud)
我尝试编辑Test.deps.json,但我不确定要删除什么,并且每次编辑时程序集都会变得无效。
我尝试将项目/运行时和应用程序池切换到 32 位,但发生了同样的事情。
dotnet publish如果我在包管理器控制台中输入,然后转到已发布的文件夹并使用命令在本地运行 api,也会发生同样的情况dotnet run Test.exe
我尝试了在其他 SO 帖子上可以找到的所有可能的解决方案,但没有任何改变。我添加<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>到我的 csproj,但又什么也没发生。
我尝试从库密钥中删除 Test.deps.json 中的重复项,其他一些 SO 帖子推荐这样做,但这使得程序集无效。
我现在没有想法,想完成这件事,这样我就可以继续前进。
如果需要,我会提供任何其他信息,提前谢谢您!
我在 .net core 3.1 中使用示例 API 尝试了相同的过程,第一次尝试就成功了。也许可以将真正的 API 移植回 3.1,但这绝对不是首选。
Lex*_* Li 23
您应该运行 或dotnet Test.dllsimple Test.exe,因为这两种方式都是执行 .NET Core 应用程序的受支持方式。
dotnet Test.exe不起作用,因为dotnetCLI 期望提供托管程序集,而Test.exe所谓的“默认可执行文件”(实际上它是没有任何托管元数据的本机 Windows 二进制文件)。
| 归档时间: |
|
| 查看次数: |
9947 次 |
| 最近记录: |