加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

在ASP.NET中托管时找不到端点

发布时间:2020-12-16 03:29:43 所属栏目:asp.Net 来源:网络整理
导读:尝试通过浏览器访问我的服务时,我得到“Endpoint not found” http://localhost:10093/Services/Service1.svc 尝试从wcftestclient访问同一地址时,我收到“错误:无法从http://localhost:10093/Services/Service1.svc获取元数据”. 如果我在服务实现中放置一
尝试通过浏览器访问我的服务时,我得到“Endpoint not found”

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将使用webHttpBinding用于RESTful WCF服务 – 这不适用于指定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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读