添加服务引用到ASP.NET应用程序

时间:2014-01-17 14:43:40

标签: c# asp.net wcf web-services

我在这里搜索了我的问题的确切解决方案无济于事。

我已在项目中添加了Web服务,但无法引用它。单击“发现”工作正常 - 该服务可用,但在检索其位置的服务列表时,将显示以下文本:

  

HTML文档不包含Web服务发现信息。   元数据包含无法解析的引用:

     

元数据包含无法解析的引用:

'http://localhost:57657/Services/AFDiscovery.svc'. 
     

如果在当前解决方案中定义了服务,请尝试构建解决方案   再次添加服务引用。

我该如何解决这个问题?我试图在本地运行该服务,所以我需要在IIS中添加它。

Web.config信息:

<services>
  <service name="WebServiceInterface.AFDiscovery">
    <endpoint address="" binding="wsHttpBinding" contract="WebServiceInterface.AFDiscovery" />
  </service>
</services>

2 个答案:

答案 0 :(得分:0)

  

其中一种可能性是Web.config中的服务名称没有   匹配类文件中的命名空间。确保名称是   然后再试一次。

Refer

并通过reghclick并选择MarkUp

来检查您的服务标记代码

答案 1 :(得分:0)

您可以在解决方案中添加包含WebServiceInterface.AFDiscovery的项目。然后在使用Web服务的项目中,当您添加引用时,而不是单击&#34; Discover&#34;,使用项目加载选项。

如果您想通过网址(发现按钮)加载参考,请尝试浏览&#34; http://localhost:57657/Services/AFDiscovery.svc?WSDL&#34;在您的浏览器中。如果您收到一条消息,指出无法访问元数据,则必须修改您的Web服务web.config。

选中此链接以配置web.config:http://msdn.microsoft.com/en-us/library/aa751951.aspx

它应该类似于:

<configuration>
  <system.serviceModel>
    <services>
     <service
      name="WebServiceInterface.AFDiscovery"
      behaviorConfiguration="SimpleServiceBehavior">

       <endpoint address=""
              binding="wsHttpBinding"
              contract="WebServiceInterface.IAFDiscovery" />

       <endpoint address="mex"
              binding="mexHttpBinding"
              contract="IMetadataExchange" />
     </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="SimpleServiceBehavior">
          <serviceMetadata httpGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>