2016-12-14 105 views
0

一開始對不起我的英文。WcfTestClient:無法添加服務。服務元數據可能無法訪問

我知道這個問題已經有答案,但他們都沒有爲我工作。 我正在嘗試連接到我的數據庫。

我的工作:

  • 微軟的Visual Studio 2015年的社區版本14.0.25431.01更新3
  • Microsoft .NET Framework版本4.6.01586

我已經檢查工具 - >選項 - >項目和解決方案 - > Web項目 - >將64位版本的IIS Express用於網站和項目。

從查看標記(Service1.svc)我的代碼: <%@ ServiceHost的語言= 「C#」 調試= 「真」 服務= 「WCFconnection.Service1」 代碼隱藏= 「Service1.svc.cs」 %>

這裏是我的web.config

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXX" requirePermission="false" /> 
    </configSections> 
    <appSettings> 
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /> 
    </appSettings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5.2" /> 
    <httpRuntime targetFramework="4.5.2" /> 
    <httpModules> 
     <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" /> 
    </httpModules> 
    </system.web> 
    <system.serviceModel> 
    <services> 
     <service name="WCFconnection.Service1" 
      behaviorConfiguration="metadataBehavior"> 
     <endpoint address="" binding="basicHttpBinding" contract="WCFconnection.IService1" /> 
     <endpoint address="basic" binding="basicHttpBinding" contract="WCFconnection.IService1" /> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
     <endpoint address="localhost:23233/Service1.svc" 
       binding="basicHttpBinding" 
       contract="WCFconnection.IService1" 
       /> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="metadataBehavior"> 
      <serviceMetadata httpGetEnabled="true" /> 
     </behavior> 
     <behavior name="DefaultBehavior"> 
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="false" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <protocolMapping> 
     <add binding="basicHttpsBinding" scheme="https" /> 
    </protocolMapping> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 
    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"> 
     <remove name="ApplicationInsightsWebTracking" /> 
     <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" /> 
    </modules> 
    <directoryBrowse enabled="true" /> 
    <validation validateIntegratedModeConfiguration="false" /> 
    </system.webServer> 
    <connectionStrings> 
    <add name="ZPIEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=XXXXXX-XXXXXX;initial catalog=XXXXXX;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    <add name="ConStr" connectionString="Data Source=XXXXXXX-XXXXXXXX\XXXXXXX;Initial Catalog=XXXXXXX;Integrated Security=True"/> 
    </connectionStrings> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="mssqllocaldb" /> 
     </parameters> 
    </defaultConnectionFactory> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 
</configuration> 

當我去的網站,並把本地主機:23233到地址,我可以看到所有的文件,也是我Service1.svc。但是,如果我嘗試使WcfTestClient出現錯誤:

未能添加服務。服務元數據可能無法訪問。確保您的服務正在運行並展示元數據。

錯誤:無法從http://localhost:23233/獲得元數據如果這是Windows(R)通信基礎服務,您可以訪問,請檢查您是否已經啓用了元數據發佈在指定的地址...

請幫幫我。

回答

0

根據WcfTestClient給你的錯誤,你沒有提供完整的端點url。

你加入http://localhost:23233/

你應該加入http://localhost:23233/Service1.svc

+0

但在Web.config文件已經是* <端點地址=「本地主機:23233/Service1.svc」 *如果我在其他地方提供這種端點? – Morris

+0

您的Wcf **服務**配置似乎很好。什麼是失敗的是你如何將它添加到WcfTestClient(或者你消費它的任何其他地方,我猜)。當你打開WcfTestClient並點擊「Add」添加一個新的服務端點時,你應該傳遞完整的端點url,而不僅僅是地址和端口。這是因爲您可以在一個地址和端口上擁有多個端點。 –

+0

我按照你所說的做了,並且我有同樣的錯誤: *錯誤:無法從http:// localhost:23233/Service1.svc獲取元數據如果這是您有權訪問的Windows(R)Communication Foundation服務,請檢查您是否已在指定地址啓用元數據發佈。 * – Morris

相關問題