asp.net - 如何在我的网站上托管我的 WCF 服务?

标签 asp.net wcf iis hosting

我是 WCF 的新手。我开发了一个示例 WCF 服务。我的服务使用 basicHttp捆绑。

我使用 WAS 在本地 IIS 7.5 中托管我的服务,它工作正常。现在我想在我的网站上托管我的服务。

我搜索谷歌,但它们中的大多数都托管在 IIS 的 localhost 中。请告诉我该怎么做?最好引用一些教程或分步指南。

最佳答案

我相信你基本上有两种选择:

选项 1 - “bin”部署 (首选选项)

  • 将您的 WCF 服务编译成 DLL(类库)
  • 在 IIS 中创建网站
  • 将 WCF DLL 复制到网站的 .\bin 中文件夹
  • 创建 *.svc该网站中的文件
  • 添加适当的 web.config在网站文件夹中定义您的端点和服务配置等。

  • 您的 WCF 服务现在可以通过网站的基本地址以及 *.svc 的名称访问。文件,例如
    http://myserver/someweb/Myservice.svc
    

    您的 *.svc看起来像这样:
    <%@ ServiceHost Language="C#" Debug="true" 
        Service="WCF_Simple_Service.HelloIndigoService"  %>
    
    Service= attributes 表示实现服务的类 - 完全限定其 namespace 。

    选项 2 - 将内容放入 App_Code
  • 在 IIS 中创建网站
  • 把你所有的 WCF 相关 *.cs文件直接进入.\App_Code文件夹
  • 创建 *.svc该网站中的文件
  • 添加适当的 web.config在网站文件夹中定义您的端点和服务配置等。

  • 您的 WCF 服务现在可以通过网站的基本地址以及 *.svc 的名称访问。文件,例如
    http://myserver/someweb/Myservice.svc
    

    您的 *.svc看起来像这样:
    <%@ ServiceHost Language="C#" Debug="true" 
        Service="Service" 
        CodeBehind="~/App_Code/Service.cs" %>
    

    一个简单的示例 web.config可能看起来像这样:
    <system.serviceModel>
        <behaviors>
            <serviceBehaviors>
                <behavior name="WithDebug">
                    <serviceMetadata httpGetEnabled="true" />
                    <serviceDebug includeExceptionDetailInFaults="true" />
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
      <services>
        <service name="SimpleWCF.HelloIndigoService" behaviorConfiguration="WithDebug">
          <endpoint
              address=""
              binding="basicHttpBinding"
              contract="SimpleWCF.IHelloIndigoService" />
          <endpoint
              address="mex"
              binding="mexHttpBinding"
              contract="IMetadataExchange" />
        </service>
      </services>
    </system.serviceModel>
    

    你基本上定义了你的 <service>标签 - 再次:name=表示实现服务的类 - 完全限定其 namespace 。它必须包含至少一个端点——“mex”端点是可选的——但非常有用,尤其是对于开发和测试。它允许客户端“发现”服务并获取其服务描述,以便与​​它进行交互。

    在 IIS 中部署服务后,您可以使用 WCF Test Client 之类的工具查看它的运行情况。随 WCF 免费提供,或 SoapUI这是一个通用的 SOAP 测试实用程序(有免费版本供您使用)。

    关于asp.net - 如何在我的网站上托管我的 WCF 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10374131/

    相关文章:

    asp.net - 为 ASP.NET 网站创建 DAL

    c# - Codebehind 不创建按钮单击事件

    c# - 将 WCF 绑定(bind)从 wsHttpBinding 转换为 netTcpBinding

    authentication - iis7 Challenge-based 和 login redirect-based 认证不能同时使用

    c++ - 来自 ISAPI 扩展的清空 _ASSERTE 对话框

    javascript - 从一长串 html 代码构造 DOM 对象的最佳实践

    c# - 我可以通过 ASP.NET 将对象从客户端 javascript 发送到服务器端代码吗?

    c# - 添加 [PrincipalPermission(SecurityAction.Demand, Role = "ADMIN")] 时,对象引用未设置为对象的实例

    c# - 如何将 C# 日期时间变量转换为 NSDate?

    amazon-web-services - 通过 AWS Elastic Beanstalk 向 Windows Server 配置添加功能