【问题标题】:Multiple Web/WCF Projects in One IIS Application一个 IIS 应用程序中的多个 Web/WCF 项目
【发布时间】:2012-09-02 23:13:16
【问题描述】:

用于 ASP.NET 或 WCF 的 Visual Studio 项目通常与 IIS 应用程序一对一地分配。但是,例如,如果我希望将两个 WCF 项目托管在 IIS 的同一个 appdomain 中,该怎么办?这意味着我会将两个 Visual Studio WCF 项目分配给一个 IIS 应用程序。

我开始尝试这个,并遇到了first error message。我已经 seen comments 建议如何“不要这样做”。但就我而言,我实际上想要这样做。我不介意这是否意味着 IIS 应用程序具有三个 Web 配置(一个位于 IIS 应用程序的根目录,另外两个位于它包含的“项目”文件夹中),或者这是否意味着 IIS 应用程序只有一个 Web 配置.

因此,对于我的两个 Visual Studio WCF 项目,我以多种方式调整了 web.config 内容:

  • 一个 IIS 应用程序,指向找到我的 Visual Studio 解决方案文件的物理目录。这两个 WCF 项目分别位于两个子文件夹中
  • 一个 IIS 应用程序,指向任意物理位置,包含两个虚拟目录,分别指向两个 WCF 项目物理目录。我在这里有三个 Web 配置文件:一个用于 IIS 应用程序根目录,另外两个在虚拟目录中。

上面第二个选项的变体几乎奏效了。我收到的最后一条错误消息是:

找不到类型“Sample.ServiceGroupAlpha.ServiceAlpha”,作为 ServiceHost 指令中的 Service 属性值提供,或在配置元素 system.serviceModel/serviceHostingEnvironment/serviceActivations 中提供。
说明:在执行当前 Web 请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.InvalidOperationException:类型“Sample.ServiceGroupAlpha.ServiceAlpha”,作为服务提供ServiceHost 指令中的属性值,或在配置元素 system.serviceModel/serviceHostingEnvironment/serviceActivations 中提供的属性值找不到。

这促使我查看 ServiceHost 指令,并(腼腆地)修改它:

<%@ ServiceHost Language="C#" Debug="true" Service="Sample.ServiceGroupAlpha.ServiceAlpha" CodeBehind="AlphaServices/ServiceAlpha.svc.cs" %>

...注意CodeBehind 属性有一个我添加的相对路径(虚拟目录的名称)。好吧,这没有用,但我不禁认为我已经接近完成这项工作。我想知道是否有人有解决办法,或者可以转发“正确”的方式来完成这整个事情。

最终的答案可能是在同一个 IIS 应用程序中不存在两个单独的 web/WCF 项目。如果是这样的话,我会感到惊讶。另一个答案可能是“将两个 WCF 项目组合成一个 Visual Studio 项目/二进制文件”。请假设我也不想要那个答案。

【问题讨论】:

    标签: asp.net wcf iis web-config iis-7.5


    【解决方案1】:

    专注于WCF,此时我认为最接近的答案是使用并让多个VS"WCF Service Library" projects都参与单个VS“WCF服务应用程序”。

    如果我在问题中概述的方法是“按原样”工作,我怀疑上述链接可能再次有答案。而不是这个...

    <%@ ServiceHost Language="C#" Debug="true" Service="WcfWebService.Service1" 
        CodeBehind="Service1.svc.cs" %> 
    

    我会用这样的东西......

    <%@ ServiceHost Language="C#" Debug="true" Service="WcfServiceLibrary.Service1" %>
    <%@ Assembly Name="WcfServiceLibrary" %>
    

    我不再有时间或需要尝试这个,但似乎上述调整可以解决我在问题中提出的最后一个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-21
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-16
      • 2010-09-12
      相关资源
      最近更新 更多