【问题标题】:Host WCF in IIS在 IIS 中托管 WCF
【发布时间】:2013-05-19 22:25:07
【问题描述】:

你好所有聪明的人。

所以,我敢于让自己成为 WCF 服务。 当我在 WCF 测试实用程序中运行它时,它按原样工作。

但是在下一步我遇到了一些麻烦。 在 IIS 中托管 WCF 服务。

如前所述,该服务与测试实用程序一起使用。

我的解决方案:

为了在 IIS 中托管我的服务,我创建了一个名为“HostIISTcp”的文件夹,正如您在解决方案中看到的那样,我在“bin”文件夹下添加了我的 dll 和我的 pdb。 据我所知,IIS 无法使用 app.config 文件进行操作,因此我创建了一个 web.config 文件,我只是从类库中的 app.config 文件中复制/粘贴。

web.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.web>
    <compilation debug="true" />
  </system.web>
  <system.serviceModel>
    <services>
      <service name="MyWCFServices.RealKursusService.KursistService">
        <endpoint address="" binding="basicHttpBinding" contract="MyWCFServices.RealKursusService.IKursistService">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8080/MyWCFServices/RealKursusService/KursistService/" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

我认为问题出在 web.config 文件上,请原谅我是一个新手,但我一直在疯狂搜索,我真的找不到合适的解决方案。

总结一下: 我在正确的轨道上吗? 在 IIS 中托管 wcf 服务是否有另一种(更好的)解决方案? 如果您能指出 web.config 文件中是否缺少任何内容,那就太好了。

我正在使用 Visual Studio 2012、IIS 8 .net 框架 4.5 并坐在皮椅上。

【问题讨论】:

  • 如果我没记错的话,诀窍是以某种方式创建一个 svc 文件,然后将其放入 IIS 应用程序文件夹中......
  • 你遇到了什么错误?
  • 如果您使用的是 Visual Studio,您可以在 IIS 服务器上创建一个新的 Web 项目,该项目将生成您需要的 web.config,然后您可以通过添加新项目添加 Web 服务。
  • 感谢您的快速响应,据我所知,在 .net 4.0 和 4.0 之前使用 svc 文件,并且更高版本没有 svc。所以我想避免在我的解决方案中放入网络项目。

标签: c# wcf iis


【解决方案1】:

所以我想通了。

顺便说一句,很抱歉这个模糊的问题,我很困惑为什么我的 wcf 服务不会被托管。

我通过以下步骤使 web.config 正常工作:

  1. “添加新网站”到解决方案(WCF 服务)
  2. 删除两个服务文件(Service.cs、IService.cs),因为我已经在其他服务库中定义了我的服务。
  3. 添加对我现有服务库的引用。
  4. 编辑我新创建的网站中的 service.svc 文件,以指向我现有的服务服务

    <%@ ServiceHost Language="C#" Debug="true"    Service="MyWCFServices.RealKursusService.KursistService" %>
    
  5. 在我的新网站上删除了 web.config 中的整个配置。

  6. 使用“WCF 配置”工具编辑 web.config(右键单击 web.config 文件) 使用 WCF 配置工具时,它非常简单。添加服务并将其指向您在 bin 目录中的引用 dll。

然后在 iis 中我的默认站点下的新应用程序中托管 svc 文件

希望这可以帮助某人

【讨论】:

  • 我强烈建议不要使用网站“项目”。相反,您应该始终使用 Web 应用程序项目。尝试同样的事情,但这次使用 Add->New Project 并选择 WCF/WCF Service Application。
  • 谢谢。你能解释一下为什么吗?
  • 它们很奇怪,与 Visual Studio 中的所有其他项目不同 - 例如,没有项目文件。关于他们的所有其他问题都来自于此。
猜你喜欢
  • 2016-06-06
  • 1970-01-01
  • 2013-10-01
  • 2023-03-21
  • 1970-01-01
  • 2011-07-01
  • 1970-01-01
  • 2022-12-13
  • 1970-01-01
相关资源
最近更新 更多