在http:// localhost:8080 / kestrel / SystemService中没有监听端点

时间:2013-12-03 08:57:45

标签: c# asp.net web-services

我已从服务提供商下载架构文件以测试其API。我在ASP.NET应用程序中引用了该服务,并编写了一个发送ping请求的简单方法。我收到以下错误:

Error making ping request: There was no endpoint listening at http://localhost:8080/kestrel/SystemService that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.

这是否意味着我还需要托管文件?如果是,怎么样?

编辑:

这是我的web.config

<?xml version="1.0"?>
 <configuration>
<system.web>
  <compilation debug="true" targetFramework="4.5" />
  <httpRuntime targetFramework="4.5" />
</system.web>

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="ExternalCacheAccessBinding" />
            <binding name="SystemPingBinding" />
            <binding name="SystemInfoBinding" />
            <binding name="SystemTimeBinding" />
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="https://americas-uapi.copy-webservices.travelport.com/B2BGateway/connect/uAPI/SystemService"
            binding="basicHttpBinding" bindingConfiguration="ExternalCacheAccessBinding"
            contract="WSDLService.ExternalCacheAccessPortType" name="ExternalCacheAccessPort" />
        <endpoint address="https://americas-uapi.copy-webservices.travelport.com/B2BGateway/connect/uAPI/SystemService"
            binding="basicHttpBinding" bindingConfiguration="SystemPingBinding"
            contract="WSDLService.SystemPingPortType" name="SystemPingPort" />
        <endpoint address="https://americas-uapi.copy-webservices.travelport.com/B2BGateway/connect/uAPI/SystemService"
            binding="basicHttpBinding" bindingConfiguration="SystemInfoBinding"
            contract="WSDLService.SystemInfoPortType" name="SystemInfoPort" />
        <endpoint address="https://americas-uapi.copy-webservices.travelport.com/B2BGateway/connect/uAPI/SystemService"
            binding="basicHttpBinding" bindingConfiguration="SystemTimeBinding"
            contract="WSDLService.SystemTimePortType" name="SystemtimePort" />
    </client>
</system.serviceModel>

这是我发送的请求:

// PING REQUEST
    //

    String payload= "this my payload; there are many like it but this one is mine";
    String someTraceId = "doesntmatter-8176";

    //set up the request parameters into a PingReq object
    PingReq req = new PingReq();
    PingRsp rsp = new PingRsp();
    req.Payload=payload;
    req.TraceId=someTraceId;
    SystemPingPortTypeClient port = new SystemPingPortTypeClient();
    try {
        //run the ping request
        UserNamePasswordClientCredential creds = port.ClientCredentials.UserName;
        creds.UserName = "MyUserName";
        creds.Password = "MyPassword";

        rsp = port.service(req);
        //print results.. payload and trace ID are echoed back in response
        Label1.Text = rsp.Payload;
        Label2.Text = rsp.TraceId;
        Label3.Text = rsp.TransactionId;
        } 
    catch (Exception ex) {
    //usually only the error message is useful, not the full stack
    //trace, since the stack trace in is your address space...
    Label1.Text = "Error making ping request: " + ex.Message;

1 个答案:

答案 0 :(得分:2)

您正在尝试连接自己(localhost)。您需要获取他们提供的公共服务地址才能公开访问该服务。

即:

http://some.public.domain:8080/kestrel/SystemService

您应该只需导航到服务网址,即可在浏览器中点击服务参考,然后查看服务方法。在这种情况下,就像你在web.config&gt; https://americas-uapi.copy-webservices.travelport.com/B2BGateway/connect/uAPI/SystemService

当我导航到这个URL时,我得到一个&#34; 500&#34;故障代码。我只是在浏览器中导航到您的网址时,就开始与他们沟通。