Я импортировал услугу wcf и доступен с локального хоста, но когда я использую свой общедоступный IP-адрес, я не могу его достать.WCF недоступен из сети
Это содержимое моего файла web.config.
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true"
targetFramework="4.0" />
</system.web>
<system.serviceModel>
<extensions>
<bindingExtensions>
<add name="clearUsernameBinding"
type="WebServices20.BindingExtenions.ClearUsernameCollectionElement, ClearUsernameBinding" />
</bindingExtensions>
<!-- Add the inspector attribute as a behavior for displaying SOAP XML packets -->
<behaviorExtensions>
<add name="consoleOutputBehavior"
type="WcfService1.ConsoleOutputBehaviorExtensionElement, WcfService1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
</extensions>
<bindings>
<clearUsernameBinding>
<binding name="myClearUsernameBinding"
messageVersion="Soap12" />
</clearUsernameBinding>
</bindings>
<behaviors>
<!-- Add the inspector behavior -->
<endpointBehaviors>
<behavior name="inspectorBehavior">
<consoleOutputBehavior />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="HelloWorldServiceBehavior">
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="WcfService1.CustomUserNameValidator, WcfService1" />
</serviceCredentials>
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="HelloWorldServiceBehavior"
name="WcfService1.HelloWorldService">
<endpoint address=""
binding="clearUsernameBinding"
bindingConfiguration="myClearUsernameBinding"
contract="WcfService1.IHelloWorldService" />
</service>
</services>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
</configuration>
У меня есть консольное приложение, способное общаться с ним, но ТОЛЬКО с localhost.
Вот как я могу добраться до него. Он работает на порту 14946 и имеет порт, перенаправляющий этот порт на компьютер, на котором работает служба. Он размещен на IIS.
http://localhost:14946/HelloWorldService.svc?singleWsd
Если я использую: {} publicIP: 14946/HelloWorldService.svc singleWsd Я получаю внутреннюю ошибку 500, которая означает, что его проблема с настройкой, но я не могу точно определить, в чем проблема?.
EDIT: Я получаю эту ошибку.
Тип «WcfService1.HelloWorldService», предоставляемый как значение атрибута Service в директиве ServiceHost, не может быть найден. Теперь я могу перейти к нему через Интернет, но теперь получаю эту ошибку. Для того, чтобы исправить предыдущую ошибку, я должен был: 1.) Перейти добавить удалить компоненты 2.) Развернуть MS .NET Framework 3.) Переплет как HTTP и Non-HTTP активации для WCF
Спасибо,
Я пробовал выше, но до сих пор не могу связаться с ним из Интернета. Это должна быть проблема конфигурации, но я не могу точно ее определить. – RobertC
У вас есть виртуальный каталог в IIS? Как вы разместили свою службу в IIS? – jtabuloc
Я только что щелкнул правой кнопкой мыши и добавил сайт. Для привязок я просто привязал его к частным IP-машинам, и у меня есть порт, перенаправленный этим портом на этот компьютер. – RobertC