没有端点监听wcf / rest

时间:2012-03-24 20:07:28

标签: c# wcf visual-studio-2010 rest

所以我之前的问题围绕着将wcf变成一个宁静的服务convert a WCF Service, to a RESTful application?,我设法做了一些帮助!

但是我的客户遇到了一个新问题:

  

http://localhost:26535/Service1.svc没有可以接受该消息的端点监听   这通常是由错误的地址或SOAP操作引起的。看到   InnerException(如果存在),以获取更多详细信息。

现在,从屏幕转储可以看到,restful服务正在运行:

enter image description here

我可以从url中添加值1,如下所示:

enter image description here

但是我似乎无法在另一个新的visual studio实例上运行它,我的客户端app.config看起来像这样:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <bindings>
            <customBinding>
                <binding name="WebHttpBinding_IService1">
                    <textMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16"
                        messageVersion="Soap12" writeEncoding="utf-8">
                        <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                            maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    </textMessageEncoding>
                  <httpTransport></httpTransport>
                </binding>
            </customBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost:26535/Service1.svc" binding="customBinding" bindingConfiguration="WebHttpBinding_IService1"
                contract="ServiceReference1.IService1" name="WebHttpBinding_IService1" />
        </client>
    </system.serviceModel>
</configuration>

客户代码:

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        public ServiceReference1.Service1Client testClient = new ServiceReference1.Service1Client();
        private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = testClient.GetData(Convert.ToInt32(textBox1.Text));
        }
    }
}

我在这里查看此区域的先前问题:WCF - "There was no endpoint listening at..." error

但它没有提供解决方案?我不熟悉IIS上的托管或者这不仅仅是练习,所以让它在调试(F5)上工作将是zer goood!

1 个答案:

答案 0 :(得分:2)

这可能实际上是由于对REST服务的更改。

尝试从主机配置中删除/注释掉

<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>

似乎REST没有传递任何元数据(因此删除了mex)

如果您重置服务引用,它应该正常工作......我相信。

此外,this article可能有用

如果您能够使用第三方,那么我建议您使用RestSharp。它使得非常容易使用RESTful服务:)

或者你可以使用更新的WebAPI来使这些调用更直接吗?问题是RESTful服务不像SOAP调用那样容易消耗