C# 如何在IIS中作为子应用程序托管WCF?

C# 如何在IIS中作为子应用程序托管WCF?,c#,asp.net,.net,wcf,iis,C#,Asp.net,.net,Wcf,Iis,我有一个带有默认应用程序和沙盒应用程序的Web服务器。现在,我想将WCF服务发布为每个服务的子应用程序。 e、 g ://www.mydomain.com/services ://sandbox.mydomain.com/services 在VisualStudio中,我为沙盒配置了一个发布配置文件 服务器:://myipaddress:8172/msdeploy.axd sitename:沙箱/服务目标 url:://sandbox.mydomain.com/services 一旦发布

我有一个带有默认应用程序和沙盒应用程序的Web服务器。现在,我想将WCF服务发布为每个服务的子应用程序。 e、 g

  • ://www.mydomain.com/services
  • ://sandbox.mydomain.com/services
在VisualStudio中,我为沙盒配置了一个发布配置文件

  • 服务器:://myipaddress:8172/msdeploy.axd
  • sitename:沙箱/服务目标
  • url:://sandbox.mydomain.com/services
一旦发布,该应用程序就可以在沙盒下使用,正如我所期望的那样。但是,我收到来自浏览器的一般错误:

*运行时错误 描述:处理您的请求时发生异常。此外,在执行第一个异常的自定义错误页时发生另一个异常。请求已被终止。 查看应用程序事件日志,我发现有一个配置错误,应用程序无法加载程序集。在本例中,它是DevExpress库。WCF服务未引用这些库;但是,它们被沙盒应用程序引用。 事件日志条目 活动编号:3008 事件消息:发生配置错误。 活动时间:2018年2月1日下午1:06:06 活动时间(UTC):2018年2月1日下午6:06:06 事件ID:54ba6fe939ec46deb0526c36e13579d3 事件顺序:1 事件发生率:1 事件详细信息代码:0

申请资料: 应用程序域:/LM/W3SVC/2/ROOT/Services-7-131619819656314908 信任级别:完全信任 应用程序虚拟路径:/Services 应用程序路径:\Sandbox\Services\ 计算机名称: 例外信息: 异常类型:ConfigurationErrorsException 异常消息:无法加载文件或程序集“DevExpress.Web.v16.2,版本=16.2.4.0,区域性=中性,PublicKeyToken=b88d1754d700e49a”或其依赖项之一。系统找不到指定的文件*

我已经添加了对前两个Devexpress库的引用。异常只指向根应用程序中的另一个库。这是不可持续的,两者应该是独立的

我创建了一个新的应用程序池,认为这是某种继承问题。那是行不通的

如何防止WCF服务希望加载这些库。还允许这些服务发布一个子应用程序吗


提前感谢

我发现了问题的根本原因和解决方案。原因在于IIS中的设计。Web.Config文件由子应用程序从其根应用程序继承。要防止这种情况,有两种机制可供您使用:

  • 利用
    标记并设置inheritInChildApplications 对于不希望继承的节,属性设置为false。你的位置 这些标记位于根应用程序的web.config中

  • 利用子应用程序中的
    在web.config中,您希望从头开始


在我的场景中,我在根web.config的system.web周围放置了
标记,并在我的子web.config中使用
标记进行连接字符串和应用程序设置

发布问题时请不要大声呼喊。谢谢。你好,我遇到了这个问题。您能告诉我如何放置
标签吗?