2015-02-20 4 views
0

В Интернете есть несколько похожих сообщений, но ни один из них не работает для меня!Ошибка конфигурации WCF

У меня есть WCF веб-сервис, который я не могу потребить с моим проектом C#, так как он дает мне эту ошибку:

There was an error downloading ' http://localhost:1940/MyService.svc/_vti_bin/Listdata.svc/ $metadata' the request failed with HTTP status 404: Not Found. Metadata contains a reference that cannot be resolved: ' http://localhost:1940/MyService.svc '. The remote server returned an error: (405) Method Not Allowed.

Я уже добавил ссылку на службу, но когда я пытаюсь обновить я получаю это ошибка.

Вызов либо из URL-адресов в ошибке дает мне 404.

Код работает отлично на сервере, но не работает локально. Однако мне нужно добавить функцию.

Конфигурация с сервера кажется такой же, за исключением того, что использует полный контракт и имена классов, но это не работает для меня, когда я пытаюсь использовать его в своем локальном проекте.

ServiceModel часть конфигурации выглядит следующим образом:

<system.serviceModel> 
    <services> 
     <service name="MyService"> 
     <endpoint address="" binding="basicHttpBinding" contract="IMyService" /> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior> 
      <!-- 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> 
    </system.serviceModel> 

Существуют ли какие-либо явные ошибки здесь? Это связано с .NET 3.5

Я пробовал различные варианты имени службы с полным пространством имен и без имени интерфейса и имени класса или обоих (как показано здесь).

Все предложения, которые я нашел до сих пор, разные, и ни один из них не работает.

Буду Вам благодарен за помощью!

[Редактировать]

Там нет очевидной причины, я могу понять, почему это не работает.

Я собираюсь спать все выходные и возвращаться к нему в понедельник!

Имейте хороший один.

[/ Edit]

+0

Я думаю, это может быть проблемой с проектом. Я попытаюсь добавить код в новый проект, чтобы убедиться, что это лучше. – CompanyDroneFromSector7G

ответ

0

Я начал новый проект, вставленный в коде от старого , все отлично работало.

Такая же конфигурация, как и первая.

Если бы у меня было время, я бы с удовольствием выяснил, какие различия между ними есть, но пока я просто рад, что это работает!

0

Его трудно сказать, основываясь на том, что вы выложили. Но, похоже, вам не хватает обязательной информации:

<bindings> 
      <basicHttpBinding> 
       <binding name="basicHttpDefaultBinding" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647" maxBufferSize="2147483647"> 
        <readerQuotas maxArrayLength="2147483647" maxStringContentLength="2147483647" maxDepth="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
        <security mode="None"> 
         <transport clientCredentialType="None" /> 
        </security> 
       </binding> 
      </basicHttpBinding> 
     </bindings> 

, а затем обновить

<endpoint address="" binding="basicHttpBinding" contract="IMyService" /> 

к этому

<endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicHttpDefaultBinding" contract="IMyService" /> 
+0

Я сделал эти изменения, но, похоже, нет никакой разницы. Что еще мне нужно для публикации? – CompanyDroneFromSector7G

1

Комментировать <remove name="Documentation"/> или ключи от ключа <webServices> в вашем сети.config file

<webServices> 
     <protocols> 
     <!--<remove name="Documentation"/>--> 
     </protocols> 
    </webServices> 
Смежные вопросы