Я создал службу стиля WCF REST в своем проекте.В процессе разработки я могу указать относительный URL-адрес для доступа к своему сервису:
jQuery.ajax({
url: "/WebServices/AddressWebService.svc/GetCountry",
datatype: "json",
success: function (data) {
jQuery.each(data.GetCountryResult, function (index, value) {
//value.entityData.CountryGuid
//value.entityData.CountryName
$('#dataCountry').empty();
$('#dataCountry').append('<option value="' + value.entityData.CountryGuid + '">' + value.entityData.CountryName + '</option>');
});
}
});
При размещении на IIS (с портом 81) с именем корневой папки c2c я больше не могу получить доступ кservice
Используя ошибку огня, я попытался увидеть заголовки, мой относительный URL ("/WebServices/AddressWebService.svc/GetCountry) добавляется к моему хосту (localhost: 81), но имя виртуальной папки (c2c)не добавляется. В результате он показывает исключение файла не найдено
Если я использую полный URL-адрес (http://localhost:81/c2c/WebServices/AddressWebService.svc/GetCountry),, он работает нормально.
Если я использую полный URL-адрес, онбудет сложно вносить изменения при переходе в рабочую среду. Хотя мы можем использовать глобальные переменные для хранения webroot (в данном случае c2c)
Есть ли какое-то простое решение для решения этой проблемы, я также дал базовый адресв конфигурационном файле
<system.serviceModel>
</binding>
</webHttpBinding>
</bindings>
<services>
<service name="c2c.WebServices.AddressWebService" behaviorConfiguration="jsonBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:81/c2c"/>
</baseAddresses>
</host>
<endpoint address="" binding="webHttpBinding" bindingConfiguration="webmax" contract="c2c.WebServices.IAddressWebService" behaviorConfiguration="jsonendpointBehavior" />
<endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
</service>
</services>