Как заставить C# WCF работать в локальной сети?
Всем привет!
Я создал приложение WCF/WPF. WCF использует Entity Framework для получения данных из базы данных.
И на моем локальном компьютере все работает просто отлично.
Но как я могу заставить это работать в локальной сети? У меня дома есть пара компьютеров, поэтому я хотел работать в этом приложении на всех них.
Вот как выглядит app. config из сервиса:
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <system.web> <compilation debug="true" /> </system.web> <!-- When deploying the service library project, the content of the config file must be added to the host's app.config file. System.Configuration does not support config files for libraries. --> <system.serviceModel> <services> <service name="ISKUService.Service1"> <host> <baseAddresses> <add baseAddress="http://localhost:8733/Design_Time_Addresses/ISKUService/Service1/" /> </baseAddresses> </host> <!-- Service Endpoints --> <!-- Unless fully qualified, address is relative to base address supplied above --> <endpoint address="" binding="basicHttpBinding" contract="ISKUService.IService1"> <!-- Upon deployment, the following identity element should be removed or replaced to reflect the identity under which the deployed service runs. If removed, WCF will infer an appropriate identity automatically. --> <identity> <dns value="localhost" /> </identity> </endpoint> <!-- Metadata Endpoints --> <!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. --> <!-- This endpoint does not use a secure binding and should be secured or removed before deployment --> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> </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> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> </entityFramework> </configuration>
Спасибо!
Что я уже пробовал:
Я пытался измениться
<add baseAddress="http://localhost:8733/Design_Time_Addresses/ISKUService/Service1/" />
в
<add baseAddress="http://192.168.1.13:8733/Design_Time_Addresses/ISKUService/Service1/" />
Это ошибка, которую я получаю на другом компьютере:
https://s4.postimg.io/otyu519xp/error.jpg[^]
но не повезло...
Afzaal Ahmad Zeeshan
В чем заключается ошибка, которую вы получаете?
tomjah86
Эта ошибка возникает на другом компьютере в той же сети...эти 2 компьютера могут нормально обмениваться файлами...
https://s4.postimg.io/otyu519xp/error.jpg
Beginner Luck
попробуйте поставить этот url "http://192.168.1.13:8733/Design_Time_Addresses/ISKUService/Service1/" в боузере другого компьютера, который пытается получить к нему доступ. Это позволит проверить, является ли эта конечная точка доступом к этому компьютеру
Bernhard Hiller
Вы проверили настройки брандмауэра?
tomjah86
Что я должен изменить в настройках брандмауэра?