在虚拟应用程序 (IIS) 中应用程序 运行 时缺少程序集引用
Missing assembly reference when application running in virtual application (IIS)
我的 IIS 中有一个主网站 (Net 4.5.2)。然后我在主网站内创建单独的 webapi(Net 4.7.2) 和 运行 作为虚拟应用程序。但是,当我测试 webapi 以获取数据时,它会给我一个关于缺少程序集引用的错误。下面是错误。
Parser Error Message: Could not load file or assembly 'System.Web.Optimization' or one of its dependencies. The system cannot find the file specified.
然后我将这个丢失的程序集安装到网络上api,然后它就可以正常工作了。
所以,问题是:
- 为什么我的网站 api 没有使用这个程序集,但我需要安装这个程序集?
- 它是否与网络有关 api 运行 作为我主网站中的虚拟应用程序?还是因为版本不同?
- 如何跳过此步骤而不需要将未使用的程序集安装到 Webapi?
我找到了这个问题的答案。它是因为继承到 IIS 中的嵌套应用程序。
需要在主站点 web.config 中将对子应用程序的继承设置为 false。这是此问题的solution link。
<location path="." inheritInChildApplications="false">
<system.web>
<!-- ... -->
</system.web>
</location>
我的 IIS 中有一个主网站 (Net 4.5.2)。然后我在主网站内创建单独的 webapi(Net 4.7.2) 和 运行 作为虚拟应用程序。但是,当我测试 webapi 以获取数据时,它会给我一个关于缺少程序集引用的错误。下面是错误。
Parser Error Message: Could not load file or assembly 'System.Web.Optimization' or one of its dependencies. The system cannot find the file specified.
然后我将这个丢失的程序集安装到网络上api,然后它就可以正常工作了。
所以,问题是:
- 为什么我的网站 api 没有使用这个程序集,但我需要安装这个程序集?
- 它是否与网络有关 api 运行 作为我主网站中的虚拟应用程序?还是因为版本不同?
- 如何跳过此步骤而不需要将未使用的程序集安装到 Webapi?
我找到了这个问题的答案。它是因为继承到 IIS 中的嵌套应用程序。 需要在主站点 web.config 中将对子应用程序的继承设置为 false。这是此问题的solution link。
<location path="." inheritInChildApplications="false">
<system.web>
<!-- ... -->
</system.web>
</location>