尝试通过浏览器访问我的服务时,出现“找不到端点”
http://localhost:10093/Services/Service1.svc
尝试从wcftestclient访问同一地址时,出现“错误:无法从http://localhost:10093/Services/Service1.svc获取元数据”。
如果在服务实现中放置一个断点,它将被命中,因此我假设svc文件已正确设置:
<%@ ServiceHost Language="C#" Debug="true"
Service="MyApp.Core.Service.Service.MyAppService,MyApp.Core.Service"
Factory="CommonServiceFactory.WebServiceHostFactory,CommonServiceFactory" %>
这是我的配置:
<system.serviceModel>
<services>
<service name="MyApp.Core.Service.Service.MyAppService,MyApp.Core.Service"
behaviorConfiguration="MainServiceBehavior">
<endpoint name="newEndpoing"
binding="basicHttpBinding" bindingConfiguration=""
contract="MyApp.Core.Service.IMyAppService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MainServiceBehavior">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
最佳答案
因此,您有一个* .svc文件来托管您的服务。您可以在Visual Studio中右键单击该文件,然后说“在浏览器中显示”吗?您在那里得到了任何东西,还是马上就抛出了错误?
下一步:您的服务端点没有address=""
属性,我认为这是必需的-尝试添加该属性(即使您未在其中指定地址)。
如果您在IIS中托管,则服务地址由SVC文件所在的虚拟目录以及SVC文件本身定义-您可能无法定义特定的端口或任何其他端口(IIS将处理该端口)。
因此,尝试连接到
http://localhost/Services/Service1.svc
那有什么机会吗?
更新:再次仔细阅读您的文章,您正在为服务指定一个特殊的工厂
WebServiceHostFactory
。这是.NET提供的默认WebServiceHostFactory
,还是您自己构建的东西?关键是:.NET
WebServiceHostFactory
将对RESTful WCF服务使用webHttpBinding
-不适用于指定basicHttpBinding
的端点,REST服务也不会包含任何元数据...。更新#2:尝试在SVC文件和配置文件中仅使用服务的完全限定的类名,但不使用程序集规范。
所以改变这个:
Service="MyApp.Core.Service.Service.MyAppService,MyApp.Core.Service"
对此:
Service="MyApp.Core.Service.Service.MyAppService"
SVC文件:
<%@ ServiceHost Language="C#" Debug="true"
Service="MyApp.Core.Service.Service.MyAppService" %>
配置文件:
<services>
<service name="MyApp.Core.Service.Service.MyAppService"
behaviorConfiguration="MainServiceBehavior">
<endpoint name="newEndpoing"
binding="basicHttpBinding" bindingConfiguration=""
contract="MyApp.Core.Service.IMyAppService" />
</service>
</services>
关于asp.net - 在ASP.NET中托管时找不到端点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3847359/