C# IIS中的主机WCF

C# IIS中的主机WCF,c#,wcf,iis,C#,Wcf,Iis,大家好,你们这些聪明人 所以,我敢让自己成为一个WCF服务。 当我在WCF测试实用程序中运行它时,它的工作方式应该是这样的 但下一步我遇到了一些麻烦。 在IIS中托管WCF服务 如前所述,该服务与测试实用程序一起工作 我的解决方案: 为了在IIS中托管我的服务,我创建了一个名为“HostIISTcp”的文件夹,您可以在解决方案中看到,我在“bin”文件夹下添加了我的dll和我的pdb。 据我所知,IIS无法使用app.config文件进行操作,因此我创建了一个web.config文件,在该文件

大家好,你们这些聪明人

所以,我敢让自己成为一个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 framework 4.5,坐在一把皮椅上。

所以我找到了答案

顺便说一句,很抱歉我的问题是,我很困惑为什么我的wcf服务不能被托管

我通过以下步骤获得了web.config:

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

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

  • 使用“WCF配置”工具编辑web.config(右键单击web.config文件) 当使用WCF配置工具时,它非常简单。添加服务并将其指向bin目录中的引用dll
  • 然后在iis中我的默认站点下的新应用程序中托管svc文件


    希望这能帮助某人

    如果我没记错的话,诀窍是以某种方式创建一个svc文件,然后将其放到IIS应用程序文件夹中…检查您遇到了什么错误?如果您使用的是visual studio,您可以在IIS服务器上创建一个新的Web项目,该项目将生成所需的Web.config,然后您可以通过“添加新项”添加Web服务。感谢快速响应,据我所知,在.net 4.0和4.0及以上版本之前使用的svc文件没有svc。因此,我希望在我的解决方案中避免加入web项目。我强烈建议不要使用web站点“project”。相反,您应该始终使用web应用程序项目。尝试同样的方法,但这次使用添加->新建项目并选择WCF/WCF服务应用程序。谢谢。你能解释一下原因吗?它们很奇怪,不像VisualStudio中的其他类型的项目——例如,没有项目文件。他们身上其他的一切都来自于此。