创建WCF后无法定义端点

时间:2012-09-23 18:33:18

标签: wcf ssis

我想学习WCF所以我决定尝试创建一些使用它的应用程序。那么我想到的是我有2个数据库,我想创建一个SSIS自定义数据源扩展,调用Web服务并将数据(从一个数据库)传递到SSIS ADO.Net数据源(到第二个数据库)

现在我使用SQL Server创建了2个数据库,每个数据库都有一个表。然后我在Visual Studio中添加了一个Connection,然后指定了服务器实例。 (没有创建任何.mdf文件)。我在Web.Config文件中添加了这个connectionString

  <connectionStrings>
    <add name="dbconnection" connectionString=" 
         Data Source = SARE-VAIO;
         Integrated Security = true; 
         Initial Catalog = Database1"/>
  </connectionStrings>

当我编写基本上用数据填充Database1的服务时,我想定义端点,但是当我点击“编辑WCF配置”时,它说“没有服务”被定义了?我在这里做错了什么?我想创建一个无错服务,以便能够将其用作SSIS包中的源。

PS。我的服务有一个basicHttpsBinding

更新:我正在使用VS 2012和.Net Framework 4.5

更新2: 我暂时跳过端点定义,继续测试和部署我的WCF。当我调用该服务时,它会显示以下错误

  Failed to invoke the service. Possible causes: The service is offline or inaccessible; 
  the client-side configuration does not match the proxy; the existing proxy is invalid. 
  Refer to the stack trace for more detail. You can try to recover by starting a new proxy, 
  restoring to default configuration, or refreshing the service.

这是我的web.config文件

  <?xml version="1.0"?>
  <configuration>
    <connectionStrings>
      <add name="dbconnection" connectionString="Data Source = SARE-VAIO; Integrated        Security = true; Initial Catalog = Database1"/>
    </connectionStrings>
    <appSettings>
      <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
    </appSettings>
    <system.web>
      <compilation debug="false" targetFramework="4.5" />
      <httpRuntime targetFramework="4.5"/>
    </system.web>
    <system.serviceModel>
      <behaviors>
        <serviceBehaviors>
          <behavior>
            <!-- To avoid disclosing metadata information, set the values below to false before deployment -->
            <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
            <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
            <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"/>

      <directoryBrowse enabled="true"/>
    </system.webServer>

  </configuration>

1 个答案:

答案 0 :(得分:0)

回答你的问题

(1)为什么WCF配置编辑器显示“没有定义服务”错误:您的web.config没有明确定义任何服务和端点(注意:当您在IIS中托管它时,您仍然会添加一些端点,因为默认端点功能。但配置编辑器工具仅显示明确定义的端点)。这就是配置编辑器工具显示此消息的原因。但您可以使用该工具添加服务和端点。

(2)部署服务后,查看服务是否已成功激活。您可以通过浏览元数据URL(您的配置已启用元数据)来执行此操作。确保您的服务WSDL帮助页面和WSDL显示正常。如果没有先解决这个问题。

(3)如果您在IIS中托管默认https端点后,请确保您的IIS具有使用SSL证书配置的https绑定。

希望这有帮助!

谢谢!