У нас есть несколько серверов здесь.
Большинство наших веб-серверов являются компьютерами под управлением Windows 2008 R2, на которых установлены Apache и MySQL, но у нас также есть Веб-серверы IIS7 которые запускают базы данных SQL Server 2008.
Данные, которые я буду использовать в своих веб-отчетах, частично находятся на Веб-серверы IIS7База данных SQL и частично на Веб-сервер Apacheбаза данных MySQL.
Чуть больше года назад я познакомился с веб-службами в IIS7, когда работа была обновлена с серверов Windows 2000.
Мне понравилось создание веб-службы, и я хотел бы думать, что это путь. Все примеры, которые я видел для Visual Studio 2010 (то, что у нас здесь), показывают только, как это сделать с проектом .Net 3.5. Если есть что-то для .Net 4.0, оно должно называться как-то иначе, чем Веб-сервисы.
Я хочу написать приложение, которое читает данные из базы данных MySQL на Веб-сервер Apache и объединяет это с данными из базы данных SQL на Веб-серверы IIS7.
Затем мне нужно иметь возможность читать эти данные с веб-сайта, написанного на PHP, на Веб-сервер Apache.
Итак, что я спрашиваю? Как продолжить, я полагаю.
Существуют ли контрольно-пропускные пункты, с которыми я столкнусь, которые предотвратят это?
Есть ли какой-то конкретный тип услуг, которые я должен изучить? Я не уверен, смогу ли я использовать веб-сервис с кодом PHP.
Файл web.config должен быть правильно настроен для PHP базовый класс SOAP читать из Microsoft WCF. На самом деле, кажется, нужно binding="basicHttpBinding"
,
Вот что у меня есть:
<system.serviceModel>
<services>
<service name="wcfLibrary.Dwgs" behaviorConfiguration="wcfLibrary.DwgsBehavior">
<endpoint address="" binding="basicHttpBinding" contract="wcfLibrary.IDwgs">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost/Dwg/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="wcfLibrary.DwgsBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"></standardEndpoint>
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
Однако один важный элемент, которого мне не хватало в моем проекте WCF, был WebGet — потому что я просто не смог установить ссылку на мой проект.
Что я нашел в блоге MSDN Начало работы со службами WCF WebHttp в .NET 4 является то, что проект VS2010 должен использовать Полный .NET 4 Framework, не профиль клиента, как я использовал.
Как только я сделал это и перезапустил проект, я смог добавить System.ServiceModel.Web из списка литературы.
Web.config раздел о <standardEndpoints>
раздел был с шага 8 в CodeProject: создание и использование службы RESTFul в .NET Framework 4.0.
Других решений пока нет …