我在WCF中创建了一个服务,并通过FTP将其发布到IIS服务器。
当我向将要使用它的WPF程序添加服务引用时,我得到的是在给定的URL上找不到服务。
当我导航到IIS服务器上的位置以查看错误时,我得到以下内容
服务没有应用程序(非基础架构)端点。这可能是因为没有为您的应用程序找到配置文件,或者因为在配置文件中找不到与服务名称匹配的服务元素,或者因为在service元素中没有定义端点。
我正在使用
引用它https://site/folder/MyService.svc
我在这里可能会缺少什么?
添加了web.config
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false before deployment -->
<serviceMetadata httpGetEnabled="false"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
答案 0 :(得分:2)
你没有给我们太多的帮助......
错误说清楚:服务器上的服务没有定义任何服务端点 - 没有端点,没有连接。
您需要检查服务器端web.config
文件。
你有一个<system.serviceModel> / <services> / <service>
节点吗?它说什么?您是否可以更新原始问题并向我们展示服务器端web.config
(<system.serviceModel>
部分)
一个常见的错误是<service name="...." />
属性必须完全匹配实际实现的类的完全限定类名(包含名称空间的类名)您的服务合同 - 实际包含服务代码的具体类(不是接口!)。
<强>更新强>
典型/最小<service>
标记可能如下所示:
<system.serviceModel>
<services>
<service name="NameSpace.YourServiceImplementationClass>
<endpoint name="DefaultEndpoint"
address="" -- no need to specify if you're hosting in IIS
binding="basicHttpBinding" -- defines the protocol to use to talk to your endpoint
contract="NameSpace.IYourServiceContract" />
</service>
</services>
</system.serviceModel>
当然,您可以根据需要添加更多配置 - 您需要选择绑定作为第一步 - 您的客户将如何(使用什么协议和设置)与之交谈你的服务?