2014-01-24 114 views
1

我剛開始爲一家公司開展第一份工作,我的第一項任務是爲管理大型數據庫的C#Web應用程序添加一些功能。此應用程序使用WCF REST服務和實體框架將條目存儲到數據庫中(而不是應用程序旨在管理的主數據庫)。請注意,我對使用REST完全陌生。如何在本地測試REST服務

對我額外的功能,我需要修改REST服務,但根據公司政策,我需要完成與解決方案設計師,數據庫管理員,系統集成商等一個完整的代碼審查之前,我可以部署什麼開發服務器。

這意味着我無法部署我的修改後的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> 

正如您所看到的,我只是在上面的App.config中更改了RestServiceURI。據我所知,REST服務正在IIS中運行。有沒有我失蹤的一些步驟?

REST服務解決方案本身的Web.config如下:

<?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,你應該能夠從visual studio中啓動項目。 VS可能只是爲你做所有的網頁 –

回答

1

在這種情況下,我就已經安裝IIS並配置默認網站,我期待下應用虛擬應用程序測試。然後,您可以直接從http://localhost/a.n.other.url

訪問它。但是,作爲一個側面提示,通過http訪問和測試服務可能被認爲是一個集成測試,您應該期待通過單元測試儘可能多的代碼不需要通過http調用的測試。