У меня есть самодостаточна служба WCF, которая выглядит следующим образом:самодостаточно службы WCF броски Сообщения об ошибке «405 Метод не допускается»
[ServiceContract]
public interface IService {
[OperationContract]
[WebGet]
List<Data> GetData();
//...and much more Methods
}
Моего App.config выглядит следующим образом:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<behaviors>
<serviceBehaviors>
<behavior name="MetaInformation">
<serviceMetadata httpGetEnabled="true"
httpGetUrl="http://localhost:8500/MetaInfo"
httpsGetBinding="" />
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="EndpointBehavior">
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="MetaInformation" name="Library.WcfService.ServiceModel">
<endpoint address="http://localhost:8500/Service"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBindingSettings"
contract="Library.WcfService.IService"
bindingName="BasicHttpBindingSettings"
behaviorConfiguration="EndpointBehavior"/>
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBindingSettings"
closeTimeout="00:50:00"
openTimeout="00:50:00"
sendTimeout="00:50:00"
maxBufferSize="524288"
transferMode="Streamed"
maxReceivedMessageSize="2147483647"
maxBufferPoolSize="2147483647"
messageEncoding="Text">
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
<system.web>
<httpRuntime maxRequestLength="102400"/>
</system.web>
Когда я запускаю этот сервер и клиентские приложения на своем локальном компьютере, он работает нормально. Но когда я пытаюсь запустить приложение сервера на другой компьютер, я не могу добавить ссылку на службу на клиенте, потому что я получаю это:
405 Метод не допускается метаданных содержит ссылку, которая не может быть решена: "http://192.168.178.54:8500/MetaInfo ». Это было не , прослушивание http://192.168.178.54:8500/MetaInfo Оконечная точка присутствующего, кто может принять сообщение. Это часто вызвано неправильным адресом или действием SOAP
Я пробовал почти все, что нашел в Интернете, но ничего не работало. Переключение на IIS или использование другого протокола должно быть планом B, я хочу сохранить его самостоятельно с http.
Пожалуйста, помогите мне. Я в отчаянии с этой проблемой.
Не могли бы вы рассказать нам, какая версия .NET установлена на другом компьютере, и если вы скопировали все необходимые DLL (от пользователей в каждом классе), не профинансированные .NET, в папку WCF-bin другого компьютера? Возможно, что ether .NET не установлен (в требуемой мини-версии), или у вас что-то есть в вашем GAC (глобальном кэше сборки), который у другого компьютера нет. –
Я использую .NET 4.0 на обеих машинах. Я просто скопировал все решение VS на другой компьютер для отладки. Когда я запускаю клиент на другом ПК, он тоже работает. Я получаю эту ошибку, только если попытаюсь использовать службу WCF через локальную сеть. –