0

我有个问题。我尝试从应用程序 ASP.net MVC 访问 wcf Web 服务,但在调用该方法时出现此异常。

没有在 URI 上侦听可以接受消息的端点。这通常是由不正确的地址或 SOAP 操作引起的。有关更多详细信息,请参阅 InnerException(如果存在)。

这是我的代码

var client = new DSServiceClient();
client.Methode();

web.config 的服务模型部分

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_IDSService" />
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="localhost:1695/Service1.svc"; binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IDSService" contract="ServiceReference1.IDSService" name="BasicHttpBinding_IDSService" />
    </client>
</system.serviceModel>
4

3 回答 3

0

检查您使用的 URL 是否可以从 asp.net mvc 站点访问。如果您使用的是 http 绑定,则可以将 url 复制并粘贴到部署站点的服务器上的浏览器中。URL 应位于站点根文件夹中的 web.config 文件中。

于 2013-04-02T16:59:38.147 回答
0

您是否使用 IIS 7 进行托管?如果这样,您可以访问您的站点,启用目录浏览(暂时),单击 IIS 管理器右侧的浏览链接,选择服务类(“something.svc”),它应该会在浏览器中弹出。此时,您可以从浏览器复制 URL 并将 localhost 替换为服务器名称。您甚至可以继续单击该页面上的顶部链接以访问 WSDL。如果出现问题,您可能会收到一条可能更有帮助的错误消息。

于 2013-04-02T19:18:21.380 回答
0

这是我的服务的 web.config

<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<bindings>
  <basicHttpBinding>
    <binding name="BasicHttpEndpointBinding">
      <security mode="None">
        <transport clientCredentialType="None" proxyCredentialType="None"
        realm="" />
      </security>
    </binding>
  </basicHttpBinding>
</bindings>
<services>
  <service behaviorConfiguration="DSWebService.Service1Behavior"
    name="DSWebService.Service1">
    <endpoint address="" binding="wsHttpBinding"
      contract="DSWebService.IDSService">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:1695/DSWebService" />
      </baseAddresses>
    </host>
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="DSWebService.Service1Behavior">
      <!-- To avoid disclosing metadata information, set the value below to false before deployment -->
      <serviceMetadata httpGetEnabled="true"/>
      <!-- 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>

这是我的客户端的 web.config:

<system.serviceModel>
<bindings>
  <wsHttpBinding>
    <binding name="WSHttpBinding_IDSService" />
  </wsHttpBinding>
</bindings>
<client>
  <endpoint address="http://localhost:1695/Service1.svc" binding="wsHttpBinding"
      bindingConfiguration="WSHttpBinding_IDSService" contract="IDSService"
      name="WSHttpBinding_IDSService">
    <identity>
      <dns value="localhost" />
    </identity>
  </endpoint>
</client>

并且 2 项目应该在同一个解决方案上,并且在我们添加参考之后:

DSServiceClient client = new DSServiceClient();

客户端.Methode();

于 2013-04-09T10:18:04.723 回答