2014-01-24 3 views
1

Я только что начал свою первую работу для компании, и мое первое назначение - добавить некоторые функциональные возможности к веб-приложению C#, которое управляет значительной базой данных. В этом приложении используется служба WCF REST и структура сущности для хранения записей в базе данных (а не основная база данных, для которой приложение предназначено для управления). Позвольте заметить, что я совершенно новичок в использовании REST.Как проверить службу REST локально

Для моей дополнительной функциональности мне нужно было изменить службу REST, но в соответствии с политикой компании мне нужно завершить полный обзор кода с помощью конструктора решений, администраторов баз данных, системных сборщиков и т. Д., Прежде чем я смогу развернуть что-либо на сервере dev ,

Это означает, что я не могу развернуть мой измененный REST, чтобы просто тестировать локально, если мои новые функции приложения, над которым я работаю, работают. Таким образом, я пытался развернуть службу REST локально выразить IIS, но когда я использую попытку использовать REST я получаю сообщение об ошибке с указанием:

Error: System.ServicModel.EndpointNotFoundException: There was no endpoint listening at http://localhost:45178/EmailWebServiceRest/EmailBatchManager/SendBatch that could accept the message.

App.config решения, предназначенного для тестирования REST, EmailWebService.Proxy.TestHarness, выглядит следующим образом.

<?xml version="1.0"?> 
<configuration> 
    <appSettings> 
    <!--<add key="EmailWebService.RestServiceURI" value="http://webservices.capetown.gov.za/EmailWebServiceRest/EmailBatchManager"/>--> 
    <add key="EmailWebService.RestServiceURI" value="http://localhost:45178/EmailWebServiceRest/EmailBatchManager"/> 
    <add key="EmailWebService.ApplicationName" value="COD"/> 
    <add key="EmailWebService.ApplicationLicenseKey" value="b24968d3-7011-4dab-abba-f513a430b91f"/> 
    </appSettings> 
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration> 

Как вы можете видеть, я просто изменил RestServiceURI в App.config выше. Насколько я могу судить, служба REST работает в IIS. Есть ли какой-то шаг, который мне не хватает?

web.config, самого решения REST сервиса заключается в следующем:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections>  
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    </configSections> 
    <appSettings> 
    <add key="ApplicationName" value="EmailWebService" /> 
    </appSettings> 
    <connectionStrings> 
    <add name="EmailWebService" 
     connectionString="integrated security=SSPI; 
          data source=cbd-civic-dqc03; 
          persist security info=False; 
          initial catalog=EmailWebService" 
     providerName="System.Data.SqlClient" />  
    </connectionStrings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    <httpRuntime maxRequestLength="2147483647" /> 
    </system.web> 
    <system.webServer> 
    <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> 
    <bindings>  
     <webHttpBinding>   
     <binding maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647"> 
      <readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647" maxDepth="2147483647" /> 
     </binding> 
     </webHttpBinding> 
    </bindings> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 
    <standardEndpoints> 
     <webHttpEndpoint>   
     <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" /> 
     </webHttpEndpoint> 
    </standardEndpoints> 
    </system.serviceModel> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True" /> 
     </parameters> 
    </defaultConnectionFactory> 
    </entityFramework> 
</configuration> 
+0

Похоже, вы используете wcf, вы должны просто запустить проект изнутри визуальной студии. VS, вероятно, просто сделает все веб-биты для вас –

ответ

1

В этом случае, я бы установил IIS и настроить виртуальное приложение под веб-сайта по умолчанию для приложения Я ищу контрольная работа. После этого вы сможете получить к нему доступ напрямую от http://localhost/a.n.other.url

Однако в качестве побочной заметки доступ и тестирование службы через http можно считать интеграционным тестом, и вы должны проверить как можно больше кода с помощью блока тесты, которые не нужно вызывать через http.

Смежные вопросы