Я хотел бы создать сервис, который возвращает простую строку.До сих пор я создал службу REST WCF с использованием шаблона 40 (CS) следующим образом:
Класс обслуживания:
namespace MobileREST
{
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class UserService
{
[WebGet(UriTemplate = "IMSI={i}", ResponseFormat = WebMessageFormat.Json)]
public string GetUsername(string i)
{
string username = DBWorks.GetUserName(i);
return username;
}
}
}
Web.config:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
</system.webServer>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<standardEndpoints>
<webHttpEndpoint>
<!--
Configure the WCF REST service base address via the global.asax.cs file and the default endpoint
via the attributes on the <standardEndpoint> element below
-->
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
<connectionStrings>
<add name="LocalDBString" connectionString="Data Source=.\sqlexpress;Initial Catalog=MobileRestDB;Integrated Security=True"/>
<add name="SecurityConnString" connectionString="Data Source=.\sqlexpress;Initial Catalog=LopataDB;Integrated Security=True" />
</connectionStrings>
</configuration>
Решение отлично работает во время отладки, но я не нашел способа разместить эту службу в приложении Windows (консоли) или IIS для предоставления службы.
Клиент должен создавать запросы GET или POST и получать короткие ответы.В режиме отладки запрос к http://localhost:portNumber/UserService/IMSI=xxx
возвращает просто строку xxx (без заголовков http), которая идеально подходит, но я не знаю, как выставить то же решение, чтобы разместить его на http://customWebAddress/UserService/IMSI=xxx
и получить тот же результат.
Я был бы очень признателен, если бы кто-нибудь мог предложить какое-либо решение или предоставить какой-либо полезный ресурс по вышеуказанной проблеме.