WebApplication在IIS Express上运行良好,但它没有;t在本地IIS上

本文关键字:IIS 运行 Express WebApplication | 更新日期: 2023-09-27 18:00:01

我的web应用程序有问题。我使用VS 2013(以管理员身份运行)和Windows 8进行开发。

当我使用IIS Express进行调试时,一切正常,没有任何错误(我以管理员身份运行VS)。当我更改项目属性以使用本地IIS(已安装)时,我无法使用GAC(Microsoft.FlightSimulator.SimConnect)中的外部库。此外,我还以管理员身份运行VS。抛出错误:"HRESULT E_FAIL已从对COM组件的调用中返回"-这对我来说没有任何意义。这是在创建新的SimConnect对象时抛出的:
var simconnect = new SimConnect(...)
OFC,要使用SimConnect,首先应该启动Microsoft飞行模拟器(并且它已经启动)。这是我在互联网上发现的问题的原因——第二个原因是授予权限(如下所述)。

详细信息:我在解决方案中有两个项目:库项目(用于连接到FSX)和web项目(MVC-用于显示结果)
1) 我试着将整个库项目的内容转移到MVC项目中——什么都没有
2) 我使用IIS管理器发布我的网站(使用单独的AppPool)-结果与本地IIS相同
3) 我为自己的AppPool以及IUSR、IIS_IUSR和DefaultAppPool授予了文件夹(放置项目的位置)的权限-完全访问权限。什么都没有
4) 我以管理员身份运行FSX-也没有任何内容:/

我找到了解决方法:我将库项目移动到另一个项目控制台应用程序,在那里我使用HttpSelfHostConfiguration来托管它。稍后,我从主项目(MVC)中调用这个api。对于这个解决方案,一切都很好(我测试了本地IIS[调试]和IIS管理器)。我只需要以管理员身份运行Host Api项目。

我很好奇这个例外的原因是什么。此外:如何解决:)

这似乎是权限的问题,但我授予了每一个使用过的AppPool
可能是GAC中缺少dll权限的原因吗?我不这么认为,但我不知道该怎么办。如果是,如何在GAC中授予dll权限(或如何复制)

WebApplication在IIS Express上运行良好,但它没有;t在本地IIS上

@Krzyrok,最近在我的一个项目中使用了外部库,也遇到了同样的问题。经过没完没了的面包屑,我解决了这个问题。将您的应用程序池标识从"ApplicationPoolIdentity"更改为"LocalSystem"。我还将指定的IUSR中的站点匿名身份验证更改为"应用程序池标识",但对其进行了测试,它可以留在IUSR上。我还授予了IUSR和IIS_IUSR文件夹的权限。

如果有人遇到这个问题,可能是因为您没有为本地主机站点配置SSL。该站点可能正在尝试通过https端口443进行通信,但在那里找不到该站点。该网站可能只托管在不安全的http端口上。为了解决这个问题,

  1. 转到IIS管理器
  2. 右键单击网站
  3. 单击右侧的绑定
  4. 单击"添加"
  5. 选择https
  6. 选择IIS Express证书
  7. 单击"确定"

我在IIS中使用''bin文件夹的物理路径作为网站的基本设置物理路径。我忘记了我必须发布web服务,并使用发布路径作为IIS网站的基本设置物理路径。