繁体   English   中英

发布到IIS时无法从DotNetCore调用.NET 4.6.1项目

[英]Unable to call .NET 4.6.1 project from DotNetCore when published to IIS

我目前有一个DotNetCore REST API(针对v2.1),该API引用了DotNetStandard项目(针对v2.0)。 .NET Standard项目引用了.NET完整框架项目(针对v4.6.1),该项目调用Sybase IQ数据库。

当我使用IIS Express在VS2017中运行应用程序时,这一切都可以正常工作,但是一旦发布该应用程序并尝试调用引用.NET 4.6.1应用程序的Api端点,就会出现以下错误:

System.IO.FileNotFoundException:无法加载文件或程序集>“ System.Drawing.Common,版本= 0.0.0.0,区域性=中性,>?> PublicKeyToken = cc7b13ffcd2ddd51”。 该系统找不到指定的文件。

奇怪的是,我的项目或引用的Dll都没有引用System.Drawing.Common(或System.Drawing命名空间中的任何内容)。 所有其他功能均按预期工作。

我尝试使用Nuget(最新版本为4.5.1)手动添加System.Drawing.Common.dll,但这不能解决问题。 添加Nuget程序包后,我尝试将程序集绑定重定向添加到发布文件夹中的web.config:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Drawing.Common" culture="neutral" 
            publicKeyToken="cc7b13ffcd2ddd51" />
            <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.6.26919.2" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>

但是错误仍然存​​在。

是否有人对造成此问题的原因有任何想法?

Lex Li的答案是正确的。 我将Api应用程序的目标框架更改为net471,现在可以正常使用了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM