【问题标题】:WCF EndPoints not working with IIS hostingWCF 端点不适用于 IIS 托管
【发布时间】:2013-08-06 16:02:07
【问题描述】:

我有以下设置

<services>
    <service name="HelloWCFServiceClass.clsHelloWCFServiceClass" >
      <host>
        <baseAddresses>
          <add baseAddress="http://localhost:6789/IISHosting/HelloWorldISSHostedService.svc"/>
        </baseAddresses>
      </host>
      <endpoint address="" binding="wsHttpBinding"  contract="HelloWCFServiceContract.IHelloWCFServiceContract" />
      <endpoint address="/test" binding="basicHttpBinding"
                         contract="HelloWCFServiceContract.IHelloWCFServiceContract"/>
    </service>
</services>

我可以打开

http://{ServerName}:6789/HelloWorldISSHostedService.svc

但是我遇到了一个错误

找不到网页

尝试通过这样的端点访问时

http://{ServerName}:6789/HelloWorldISSHostedService.svc/test

【问题讨论】:

    标签: wcf iis endpoint


    【解决方案1】:

    您正在使用BasicHttpBinding - 这是一个 SOAP 绑定,您不能只使用浏览器浏览到该端点。

    您需要使用SoapUI 之类的东西来测试您的SOAP 服务。

    如果您想要在浏览器中可测试的服务(只需导航到 URL),则需要改用 webHttpBindingREST 服务)

    【讨论】:

    • 我将 BasicHttpBinding 更改为 wsHttpBinding 但我无法打开 http://{ServerName}:6789/HelloWorldISSHostedService.svc/test。获取“HTTP 400 错误请求”我只想将多个端点添加到我的 WCF 应用程序
    • @user2589824: 如果你在 IIS 中托管,那么你在配置文件中的基地址是没有用的 - real 服务地址由 IIS 主机名决定, *.svc 文件所在的虚拟目录,以及 *.svc 文件本身的名称。
    • @user2589824: plus: 即使您在配置中的基址 工作 - 您导航到的 URL 不匹配您的配置:您的配置文件有 .../IISHosting/..... 而您使用的 URL 缺少 IISHosting 部分....
    • 是的,我正在使用 IIS 托管。在那种情况下,网址是什么?
    • @user2589824:我刚刚解释过了!这是http://YourServerName/YourVirtualDirectory/HelloWorldIISHostedService.svc ....
    【解决方案2】:

    如果你的服务是 MVC 项目的一部分,你需要配置你的路由表

    http://www.asp.net/mvc/tutorials/older-versions/controllers-and-routing/asp-net-mvc-routing-overview-cs

    【讨论】:

      猜你喜欢
      • 2012-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      相关资源
      最近更新 更多