WCF Web 服务未部署在 localhost ... web.config ... 端点上

Posted

技术标签:

【中文标题】WCF Web 服务未部署在 localhost ... web.config ... 端点上【英文标题】:WCF Web Service not deploying on localhost ... web.config ... endpoints 【发布时间】:2020-11-07 19:12:05 【问题描述】:

尝试部署一个超级准系统 WCF Web 服务并在本地进行测试。我收到一个错误:

找不到与端点方案 https 匹配的基地址 与绑定 BasicHttpBinding。注册的基地址方案是 [http]。

我将在此处包含来自 web.config 文件的端点标签:


    <services>
      <service name="Company.PrototypeWebService.PrototypeWebService">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="secureHTTPBinding" contract="Company.PrototypeWebService.ServiceContracts.IPrototypeWebService" />
        <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/>
      </service>
    </services>

这里有什么我遗漏的吗?我是 Web 服务开发的新手。

【问题讨论】:

地址属性为空,你觉得不奇怪? 我要从我的雇主那里得到一个模板,该模板似乎适用于类似的 Web 服务……但它确实看起来有点奇怪。 原来我应该使用 Visual Studio 发布工具...仍在弄清楚这一点。更多信息即将发布 我放弃了这个项目,重新开始。我认为问题在于我从 Visual Studio 中的错误模板开始,但我不能肯定地说。感谢您的信息 是的,您需要使用WCF服务应用程序模板在IIS中部署WCF项目。 【参考方案1】:

这是因为你的基地址是Http,但是我看到你的元数据端点使用了https,这是错误的原因,修改你的Service:

<services>
      <service name="Company.PrototypeWebService.PrototypeWebService">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="secureHTTPBinding" contract="Company.PrototypeWebService.ServiceContracts.IPrototypeWebService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
      </service>
</services>

修改 mexHttpsBinding 为 mexHttpBinding。

如果要使用https绑定,需要在服务器上配置SSL证书。一般情况下,在 IIS 中使用 https 会更方便。

更新

如果托管在 IIS 中,我们需要创建以下 WCF 项目:

这个项目的目录是这样的:

我们可以直接将项目部署到IIS,在IIS中部署时设置基地址,我们不需要在配置文件中配置基地址。这是服务的基地址:

部署成功后,我们点击.svc文件查看服务:

【讨论】:

试过但没有帮助。我需要发布我的服务。见我上面的评论。谢谢你的想法 您是否在 IIS 中托管服务?如果不在 IIS 中托管,则需要在配置文件中提供基地址。 在 IIS 中注册时询问文件位置时我应该提供什么?我尝试了 bin 文件夹和 .sln 所在的文件夹。(如果重要的话,我使用的是 VS2017) 在 IIS 中托管 WCF 需要 .svc 文件。 .svc 文件包含服务接口的实现类。 IIS 中的 WCF 相当于一个 Web 服务。

以上是关于WCF Web 服务未部署在 localhost ... web.config ... 端点上的主要内容,如果未能解决你的问题,请参考以下文章

添加服务引用仅适用于 localhost wcf 服务

当 url 段为 json 字符串时,访问 WCF Rest 服务 (WebGet) 时未找到 404

未找到 Microsoft WCF Web 服务参考提供程序扩展

修改响应标头时,WCF Web 服务未返回正确的状态代码

测试 WCF 时未列出服务

如何调用web服务wcf