Нет прослушивания конечной точки wcf / rest - PullRequest
3 голосов
/ 25 марта 2012

Итак, мой предыдущий вопрос вращался вокруг превращения wcf в полноценную службу , чтобы преобразовать службу WCF в приложение RESTful? , что мне удалось сделать с некоторой помощью!

Но я столкнулся с новой проблемой от моего клиента:

Не было конечной точки, прослушивающей 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));
        }
    }
}

Я смотрел на предыдущие проблемы в этой области на SO здесь: WCF - "Не было конечной точки, прослушивающей ..."ошибка

Но это не дает решения?Я не знаком с хостингом на IIS или что это не просто практика, поэтому работа с отладкой (F5) была бы нулевой!

1 Ответ

2 голосов
/ 25 марта 2012

Это может быть связано с переходом на службу REST.

Попробуйте удалить / закомментировать это из конфигурации вашего хоста

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

Кажется, что REST не передается ни по каким метаданным (таким образом, удаление mex)

Если вы затем сбросите свой сервисный справочник, он должен работать должным образом ... Я верю.

Также эта статья может оказаться полезной

Если вы можете использовать стороннюю компанию, я бы предложил использовать RestSharp . Это делает использование RESTful-сервисов чрезвычайно простым:)

Или вы могли бы использовать более новый WebAPI, который также может сделать эти вызовы более прямыми? Проблема в том, что сервисы RESTful не так легко используются, как SOAP-вызовы / были

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...