не могу получить доступ к моей службе WCF через другую машину в той же сети - PullRequest
0 голосов
/ 20 февраля 2011

Я написал самый простой сервис wcf, у которого есть один метод

// return a+b
int ICalc::add(int a, int b) 

Когда я пытаюсь получить доступ к сервису через локальную машину - я получаю результат без проблем.Но попробуйте получить доступ с другой машины, я не могу получить услугу.

Я пытаюсь определить

<security mode="None"/>

с клиентской машины.

Я пытаюсь определить веб-страницу «default.htm», чтобы увидеть, могу ли я получить доступ и увидеть веб-страницу (чтобы быть более понятным. Я могу получить доступ и посмотреть страницу default.htm).

Я пытаюсь получить доступ, используя IP и имя машины, но ничего!Ничего не работает.

Я определяю свой сервис как БЫЛО.

Кто-то может мне здесь помочь?

Сервисный файл web.config: (192.168.1.117 - это ip компьютера - но я также пытаюсь использовать localhost и имя компьютера .. ничего не помогает)

<system.web>
  <compilation debug="true" targetFramework="4.0" />
  <httpRuntime maxRequestLength="10000000" />
</system.web>
<system.serviceModel>
  <services>
    <service name="ServiceLibrary.ServiceProxy" behaviorConfiguration="ServiceBehavior">
    <endpoint address="" binding="wsHttpBinding" contract="ServiceLibrary.IServiceProxy">
        <identity>
          <dns value="192.168.1.117:50025"/>
        </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    <host>
      <baseAddresses>
        <add baseAddress="http://192.168.1.117:50025/ServiceProxy/" />
      </baseAddresses>
    </host>
  </service>
</services>  
<behaviors>
  <serviceBehaviors>
    <behavior name="ServiceBehavior">
      <serviceMetadata httpGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />

Клиентapp.config file: (здесь я также пытаюсь использовать ip машины и пытаюсь также использовать имя машины - я также пытаюсь отключить брандмауэр клиента и сервера ... ничего не помогает)

 <system.serviceModel>
    <bindings>
        <wsHttpBinding>
            <binding name="WSHttpBinding_IServiceProxy" closeTimeout="00:01:00"
                openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
                maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
                messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
                allowCookies="false" >

              <security mode="None"/>

                <readerQuotas maxDepth="32" maxStringContentLength="2147483647"
                    maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="2147483647" />
                <reliableSession ordered="true" inactivityTimeout="00:10:00"
                    enabled="false" />
                </binding>
        </wsHttpBinding>
    </bindings>
    <client>
        <endpoint address="http://192.168.1.117/ServiceProxy.svc"
            binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IServiceProxy"
            contract="ServiceReference1.IServiceProxy" name="WSHttpBinding_IServiceProxy">
            <identity>
                <dns value="192.168.1.117" />
            </identity>
        </endpoint>
    </client>
</system.serviceModel>

Ответы [ 2 ]

1 голос
/ 20 февраля 2011

Вы забыли порт в конфигурационном файле клиента:

address="http://192.168.1.117:50025/ServiceProxy.svc"

Редактировать: если он все еще не работает, перейдите непосредственно с клиентского компьютера на address с помощью браузера: что вы получаете?

Кроме того, какую ошибку вы получаете точно?

0 голосов
/ 20 февраля 2011

Я добавил порт в файл конфигурации клиента - но он все равно не помогает, и я все еще не могу открыть службу.

(ошибка в r.open ()

ServiceProxyClient r = new ServiceProxyClient();
r.Open();

)

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